1
3
Java 8和
我刚刚用Java6检查了一下,这是真的。 |
2
1
没有任何更改,==运算符检查两个引用是否指向同一对象。字符串文本放在字符串池中。因此,“string”被放置在字符串池中,s1和s2都指向它,因此输出为true。 |
3
1
在编辑的问题中,您定义了两个 字符串常量 根据 JLS § 3.10.5 这些文字是 被拘留的 :
因此,参考等式使用
注意,在某些JDK版本之间,字符串间的工作方式存在一些细微的差异。例如,请参见 "intern() behaving differently in Java 6 and Java 7" |
4
0
在这种情况下,由编译器决定是否
然而,您的目的是比较字符串,而不是对象,因此
|
illusionist · 覆盖==等式运算符仅在一个方向上起作用 7 年前 |
babybob · 转换为“对象”类型的目的是什么? 8 年前 |
Kevin Meredith · 定义自由Monad的相等实例 9 年前 |
Mansour · Java检查字符串的相等性 9 年前 |