我正在努力理解Java的String课程,但我很难理解下面描述的情况.
请考虑以下示例代码段:
String x = new String("Hey");
String y = "Hey";
Run Code Online (Sandbox Code Playgroud)
如果我使用bool = y == x.intern();变量bool将相等true.
我的问题是:
当我做出这样的声明时:
String b = "h";
String a = b.intern + "ey";
boolean x = a == "hey";
Run Code Online (Sandbox Code Playgroud)
x的价值将是false,但当我a = (b + "ey").intern(); x的价值将是true.
为什么不在x = true第二个例子?是因为第一个例子中的声明不一样吗?如果是,有什么区别?