카테고리 없음

Java String literal & Java String Pool

devwriter 2023. 2. 18. 01:49

예상해 보기 

public class DemoApplication {
    public static void main(String[] args) {
        String a = new String("Hello");
        String b = new String("Hello");

        System.out.println(a == b);

        String c = "Hello";
        String d = "Hello";

        System.out.println(c == d);
    }
}

 

IntelliJ IDEA

'new String' is redundant (redundant : 장황한)

opt + enter를 누르면 String literal 로 변환된다.

 

정답

  • System.out.println(a == b) : false
  • System.out.println(c == d) : true

설명

String literal 은 Java String Pool 에 생성되고 동일한 문자열은 동일한 주소를 할당 받는다.

new String 은 매번 새로운 힙메모리를 사용한다.

 

권장

IntelliJ Idea도 권장하듯이 String 은 literal 로 사용합니다.