Javadoc によると、文字列プールに等しい文字列がある場合、intern() メソッドはその文字列を返します。
public class Demo {
public static void main(String[] args) {
String str1 = "Apple";
String str2 = new String("Apple");
System.out.println(str1.intern() == str2); //false
System.out.println(str1 == str2.intern()); //true
}
}
どちらの場合も真実になると思っていました。