我有这样的代码:
String str1 = new StringBuilder("计算机").append("软件").toString();
System.out.println(str1.intern() == str1); //true
String str2 = new StringBuilder("ja").append("va").toString();
System.out.println(str2.intern() == str2); //false
String str3 = new StringBuilder("Str").append("ing").toString();
System.out.println(str3.intern() == str3); //true
我能理解为什么str1.intern() == str1
而且str3.intern() == str3
是真的,但我不明白str2.intern() == str2
。为什么这是假的?
我的java版本是:1.8.0_73