public static void main(String[] args) {String str = new StringBuilder("ja").append("va").toString();System.out.println(str == str.intern());//falseSystem.out.println("=====================================================");String str2 = new StringBuilder("red").append("is").toString();System.out.println(str2 == str2.intern());//true}
输出结果为什么不一样?
原因:


实际上Version类里面已经有了一个定义好的字符串java,所以我们new出来的,和人家的实际上并不是同一个,此外,Version类里面的其他几个字符串也一样是如此的。详情参照《深入理解java虚拟机》第三版。
