-
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 로 사용합니다.