String pool

유시현·2023년 2월 13일
0

Java

목록 보기
1/2

String은 immutable(불변성)하다. 즉 한번 생성되면 계속 그 상태로 있는것이다.

자바는 이런 불변성을 java string constant pool을 사용해서 얻을 수 있다.

String str1 = "Hello"

이렇게 선언하면

stack에 객체명이 저장되고 Heap영역안에 String constant pool에 Hello 값이 저장된다.

만약

String str2 = "Hello"

라고 하면 스택에 str2 객체명이 생성되고 이미 string pool에 값이 있어서 생성되지 않고 이미 있는 값을 가리킨다

String str1 = new String("John");
String str2 = new String("Doe");

new 키워드를 사용하면 이전에 그 문자가 사용되었는지 관계 없이 Heap 영역에 새로 생성된다.

참고
https://www.baeldung.com/java-string-pool
https://www.geeksforgeeks.org/string-constant-pool-in-java/

profile
안드로이드 ,ios 공부하고 있습니다

0개의 댓글