我试图理解 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
在第二个例子中?是因为第一个例子中的声明不一样吗?如果是,有什么区别?