ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java String literal & Java String Pool
    카테고리 없음 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 로 사용합니다.

Designed by Tistory.