h2pl/JavaTutorial

Java基本数据类型-关于String的intern()方法的使用是不是有点失误?

Closed this issue · 2 comments

atumu commented

[java] view plain copy
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();
String s4 = "11";
System.out.println(s3 == s4);
输出结果为:

[java] view plain copy
JDK1.6以及以下:false false
JDK1.7以及以上:false true


是不是该是:
s = s.intern();
s3 = s3.intern();

另外我在JDK1.7和1.8下输出结果均为 false false,不知是哪里出错了吗?

h2pl commented

欢迎pr哈。感谢指出。

h2pl commented

image
我在1.8测试的结果是false true