因此,当我们比较对象时,我们使用equals()方法,或者在if语句中使用类似的东西.如果我们有以下代码
String a = "foo";
String b = "foo";
return a==b
Run Code Online (Sandbox Code Playgroud)
因为a和b引用不同的对象,我们会将错误返回给我们.另一方面,
String a = null;
return a == null
Run Code Online (Sandbox Code Playgroud)
我们会成真的.这是为什么?
为什么
Object == null工作?
这并不意味着什么.对象不是Java中的值.你不能写那个.你能写的就是someObjectReference == null.
所以当我们比较对象时
我们不是.往上看.我们正在比较参考文献
例如,我们在if语句中使用equals()方法或类似的方法.如果我们有以下代码
String a = "foo";
String b = "foo";
return a==b
Run Code Online (Sandbox Code Playgroud)
因为a和b引用不同的对象,我们会将错误返回给我们.
不,我们不会,也不会.它会返回true.试试吧.字符串文字由Java汇集.只有一个"foo"对象.
另一方面,
String a = null;
return a == null
Run Code Online (Sandbox Code Playgroud)
我们会成真的.这是为什么?
因为引用的a值为null,所以==运算符的RHS上的表达式值也是如此.等值=>结果==为true.请注意,这a是一个引用,而不是一个对象.
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |