http://blog.youkuaiyun.com/seu_calvin/article/details/52291082
public static void main(String[] args) { String ss = new StringBuilder("flo").append("at").toString(); System.out.println(ss.intern() == ss); // false String sss = new StringBuilder("计算").append("电脑").toString(); System.out.println(sss.intern() == sss); // true String str2 = "SEUCalvin";//新加的一行代码,其余不变 String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1 == "SEUCalvin"); // false System.out.println(str1.intern() == "SEUCalvin");// true System.out.println(str1.intern() == str2); // true // java7 常量池被放入到堆空间中 之前,常量池是放在 Perm 区(属于方法区)中的 String s = new String("1"); s.intern(); String s2 = "1"; System.out.println(s == s2); String s3 = new String("1") + new String("1"); s3.intern(); // java7 将11移到常量池里 java6将11重新生成一个在常量池里 String s4 = "11"; System.out.println(s3 == s4); }