1) new
연산자를 이용하는 방식
2) 리터럴을 이용하는 방식
intern()
메소드가 호출됩니다. intern()
메소드는 주어진 문자열이 String Constant Pool에 존재하는 검색합니다. 만약 있다면 그 주소값을 반환하고 없다면 여기에 새로 하나 만들고 그 주소값을 반환해줍니다.public class Main {
public static void main(String[] args) {
String str1 = new String("hello");
String str2 = "hello";
String str3 = "hello";
System.out.println(str1 == str2); // false
System.out.println(str2 == str3); // true
}
}