由于原文作者已经写得非常详细了,特此处仅做为自己的实践笔记。
想深入理解的话,建议看原文作者的博客,本人菜鸟一枚。
//******String test1*********
// String s1 = new String("abc"); //false (堆 != 常量池)
// s1 = s1.intern(); //true 放入常量池
// String s1 = "abc"; //true
// String s2 = "abc";
// System.out.println(s1==s2);
//******String test2*********
// String s1 = new String("abc"); //创建了2个对象 堆、常量池中各一个对象
// System.out.println(s1=="abc"); //false 不同的引用 (堆 != 常量池)
// System.out.println(s1 == s1.intern()); //false (堆 != 常量池)
// System.out.println("abc" == s1.intern()); //true
参考资料:http://zeiku.iteye.com/blog/57265