String字符串的intern方法
public static void main(String[] args) {
String str1 = new StringBuilder("mei").append("tuan").toString();
System.out.println("str1 = " + str1);
System.out.println("str1.intern() = " + str1.intern());
System.out.println(str1 == str1.intern()); // true
System.out.println();
String str2 = new StringBuilder("re").append("redis").toString();
System.out.println("str2 = " + str2);
System.out.println("str2.intern() = " + str2.intern());
System.out.println(str2 == str2.intern()); // false
}
输出结果中只有拼接 java 字符串时 字符串和 字符串的intern方法的结果才会相等
调用System.out.println() ,会初始化System类,在线程初始化后调用 System#initializeSystemClass 方法,initializeSystemClass 方法中调用了 sun.misc.Version.init(); Version类初始化是会初始化类的属性,
Version类中包含了 值为 java 的字符串字符串常量 private static final String launcher_name = “java”;