Legday

String constant pool 이란? 본문

Java

String constant pool 이란?

Legday 2022. 8. 22. 17:35

 String 클래스 선언과 초기화

String s1 = "물"; //이런 문법은 다른 언어에서는 쓸 수 없다.
 //java에서 사용자에게 편하게 하기 위해 만든 문법

- 위코드와 같이 String객체를 만들면 String Constant Pool 이란 공간에 저장이 된다.(참조변수로)

- 아래와 같이 선언을 하면 String Constant Pool이 아닌 다른 heap공간에 저장이 된다.

String str = new String() ;

String Constant Pool 에는 똑같은 값이 들어오면 메모리주소를 공유하게 된다. 그리고 

다른 문자열과 붙여서 선언하게 되면 앞전에 있던 메모리주소는 가비지 컬렉션이 되고 새로운 주소값을 가리킨다

사용자의 편의를 위해 String Constant Pool 이 있는것이고 

가장 좋은 방법은 new키워드를 사용하여 heap에 할당하는 것이다