[JAVA]String pool이란?

이정원·2025년 2월 12일
0

String 생성 방식

  • 리터럴을 이용한 방식
    - string constant pool에 생성
  • new 연산자를 이용한 방식
    - heap 영역에 생성

String pool

  • 리터럴을 이용해 생성하면 해당 String 값은 Heap 영역 내 String Constant Pool에 저장되어 재사용되지만, new 연산자를 이용해 생성하면 같은 내용이라도 여러 개의 객체가 각각 Heap 영역을 차지하게 된다.
  • 그러므로 리터럴을 이용해 생성한 값이 같게 되면 서로 다른 변수더라도 같지만, new 연산자를 이용해 생성하면 같은 값이라도 서로 다른 주소를 가리키기 때문에 다르다.
  • ex)
String str1 = "Str"
String str2 = "Str"
str1 == str2 //True

String str3 = new String("Str")
String str4 = new String("Str")
str3 == str4 //False
profile
Study.log

0개의 댓글