public class StringTest {
public static void main(String[] args) {
String s1 = "ABC";
String s2 = "ABC";
String s3 = new String("ABC");
String s4 = new String("ABC");
System.out.println(s1 == s2);
System.out.println(s2 == s3);
System.out.println(s3 == s4);
System.out.println(s4 == s1);
}
}
true
false
false
false
Literal로 객체를 생성하면 Literal pool에 딱 하나만 생성된다.
즉 reference 값이 같다.
반면 new
연산자로 생성하면 새로운 객체가 생성되므로 내용이 같은 별개의 객체가 된다.
즉 reference 값이 다르다.