[Java] Java String Pool

dustle·2022년 11월 26일
1

String 은 기본형 타입(Primitive type) 이 아닌 참조형 타입 (Reference Type) 입니다.

기본형 타입이 스택에 저장되는 것과 달리 참조형 타입은 힙에 저장됩니다.

String 을 선언하는 방법 중
new 를 사용하여 선언하는 방법도 있으며

String string = new String("홍시 쨩");

""로 바로 입력하는 방법도 있습니다. -> String literal

String string = "홍시 쨩";

JVM Heap 영역 안에는 String Constant Pool이란 영역이 존재합니다.
String literal 방식으로 String을 생성하면, String Constant Pool에 저장됩니다.

생성된 String 은 String Pool에 저장되어 객체의 값이 같다면 같은 reference를 참조하게 됩니다.

하지만 new 로 생성하게 된다면 이미 존재하더라도 Heap 에 새로운 객체로 계속 생성되게 됩니다.

결론

String을 사용할 때 메모리의 이점을 가지려면 String literal 방식을 사용하여 선언하자.

출처 : https://www.geeksforgeeks.org/string-constant-pool-in-java/

6개의 댓글

comment-user-thumbnail
2022년 11월 26일

좋은 정보에요!

1개의 답글
comment-user-thumbnail
2022년 11월 26일

좋은 정보에요!

1개의 답글
comment-user-thumbnail
2022년 11월 30일

캬~

1개의 답글