我试图理解 Java 的String类,但我很难理解下面描述的情况。
考虑以下示例片段:
String x = new String("Hey");
String y = "Hey";
如果我使用bool = y == x.intern();变量bool将等于true.
我的问题是:
当我做出这样的声明时:
String b = "h";
String a = b.intern + "ey";
boolean x = a == "hey";
x的价值将是false,但当我做a = (b + "ey").intern(); x的价值将是true。
为什么不会x = true在第二个例子中?是因为第一个例子中的声明不一样吗?如果是,有什么区别?