intern()返回值错误
Author: YPEUCreated Nov 20, 2023Updated Nov 20, 2023
P114页,8.12.1(常量池中已存在字符串) 以下代码的执行结果: 书上:false,true idea(JDK8,JDK21):false,false ` @Test public void internTest(){ String s1 = new String("1"); s1.intern(); String s2 = "1"; System.out.println("s1 == s2 : " + (s1 == s2));
System.out.println("=========================");
String s3 = "1" + "1";
s3.intern();
String s4 = "11";
System.out.println("s3 == s4 : " + (s3 == s4));
}
`
修正代码: s3.intern()——>s3 = s3.intern(); ` @Test public void internTest(){ String s1 = new String("1"); s1.intern(); String s2 = "1"; System.out.println("s1 == s2 : " + (s1 == s2));
System.out.println("=========================");
String s3 = "1" + "1";
s3 = s3.intern();
String s4 = "11";
System.out.println("s3 == s4 : " + (s3 == s4));
}
` 此时打印结果为:true false
Source: hollischuang/toBeTopJavaer