String s1 = new StringBuffer().append("你好").append("世界").toString(); System.out.println(s1.intern()==s1);//true String s3 = new StringBuffer().append("你好").append("世界").toString(); System.out.println(s3.intern()==s3);//false System.out.println(s3.intern()==s1);//true System.out.println("你好世界"==s1);//true System.out.println("你好世界"==s3);//false
intern方法是从常量池中取字符串,第一次是未取到,存入常量池,第二次直接从常量池取到,
常量池中存的也是对象的引用。
注:jdk1.7环境上进行测试。