[JVM]01.字符串常量内部加载
测试代码
public class Demo01 {
public static void main(String[] args) {
String str1 = new StringBuilder("58").append("tongcheng").toString();
System.out.println(str1);
System.out.println(str1.intern());
System.out.println(str1 == str1.intern());
System.out.println();
String str2 = new StringBuilder("ja").append("va").toString();
System.out.println(str2);
System.out.println(str2.intern());
System.out.println(str2 == str2.intern());
System.out.println();
String str3 = new String("int");
System.out.println(str3);
System.out.println(str3.intern());
System.out.println(str3 == str3.intern());
}
}
测试结果
58tongcheng
58tongcheng
true
java
java
false
int
int
false
原因
用于“java”在调用System.out.println之前已经存在。
原题自《深入理解Java虚拟机》