我试过下面的代码:
public class TestIntern {
public static void main(String[] args) {
char[] c1={'a','b','h','i'};
String s1 = new String(c1);
s1.intern();
String s2="abhi";
System.out.println(s1==s2);//true
char[] c2={'j','a','v','a'};
String sj1 = new String(c2);
sj1.intern();
String sj2="java";
System.out.println(sj1==sj2);//false
char[] c3={'J','A','V','A'};
String tj1 = new String(c3);
tj1.intern();
String tj2="JAVA";
System.out.println(tj1==tj2);//true
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多不同的文字.
任何人都可以解释为什么intern()不能按字面意思的方式工作"java"?为什么上面的参考比较要评估true,除非文字是"java"?