- 关 键 词:
[code]
class ObjectEquals {
static int maxElements;
ObjectEquals(int maxElements) {
this.maxElements = maxElements;
}
public static void main(String[] args) {
ObjectEquals a = new ObjectEquals(100);
ObjectEquals b = new ObjectEquals(100);
if(a.equals(b))
System.out.println("Objects have the same values");
else
System.out.println("Objects have different values");
}
}
[/code]
以上的输出是 different ,为什么? 当然如果比较 "==" ,更是 different 了。
nod,其实equals并非真正的比较value,在这里equals和==其实都是比较引用。
但是我们经常认为equals是比较值,有两个原因:
1。原始类型的数据比如string,int,用equals实际是比较值。
2。sun实际上是鼓励大家通过重写equals来使之的语义是比较值。但是我们往往很少重写。静态页面:http://www.qqread.com/java/2006/11/y267220.html进入讨论组讨论。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 125条常见的java面试笔试题大汇总 (23470次浏览)
- 十四种Java开发工具点评 (16011次浏览)
- JAVA中配置环境变量设置方法大全 (14586次浏览)
- 论Java外观模式 (1091次浏览)
- 英文打字练习 (718次浏览)
- Java编程十大典型问题详解(1) (637次浏览)
- Java路径问题最终解决方案 (598次浏览)
- Ruby,Java的劲敌 (582次浏览)
- Java学习从入门到精通(附FAQ)2 (579次浏览)
- JAVA高手解析XML配置文件的读取操作 (568次浏览)



