public static void main(String[] args) {
String str = new StringBuilder("ja").append("va").toString();
System.out.println(str == str.intern());//false
System.out.println("=====================================================");
String str2 = new StringBuilder("red").append("is").toString();
System.out.println(str2 == str2.intern());//true
}
输出结果为什么不一样?
原因:
实际上Version类里面已经有了一个定义好的字符串java,所以我们new出来的,和人家的实际上并不是同一个,此外,Version类里面的其他几个字符串也一样是如此的。详情参照《深入理解java虚拟机》第三版。