Java String Pool

379 단어·1 분·원문(.md)

자바의 String Pool은 JVM의 힙 메모리 영역에 위치한 특별한 저장소입니다.

이곳은 특히 문자열 리터럴을 저장하고 공유하기 위한 공간입니다.

자바에서 문자열 리터럴 코드에 직접 쓰여진 문자열을 가리키며, 컴파일 시점에 String Pool에 저장되며, 이를 통해 JVM은 문자열에 대한 메모리 사용량을 효율적으로 줄일 수 있습니다.

예시 #

예를 들어 "Hello" 라는 문자열 리터럴이 여러 곳에서 사용되면, 이 모든 경우에 대해 메모리에 하나의 Hello 라는 문자열 인스턴스만 생성되고, 해당 인스턴스에 대한 참조만이 공유됩니다.

즉, 같은 값을 가진 문자열 리터럴은 String Poold에서 한 번만 저장되므로, 같은 값의 문자열을 여러 번 사용하는 경우 메모리 사용량을 크게 줄일 수 있습니다.

그러나 이러한 특징은 new 연산자를 사용해 명시적으로 새로운 String 객체를 생성하는 경우에는 적용되지 않습니다. 즉 String s = new String("Hello"); 와 같이 문자열을 생성하면, String Pool을 사용하지 않고 힙 메모리에 새로운 String 객체가 생성됩니다.

Back-End/JAVA/string_pool.md