摘要:今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。equals()方法在object类中定义如下: public boolean equals(Object obj) {return (this == obj);}很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法
阅读全文
02 2013 档案
摘要:1. '=='是用来比较两个变量(基本类型和对象类型)的值是否相等的, 如果两个变量是基本类型的,那很容易,直接比较值就可以了。如果两个变量是对象类型的,那么它还是比较值,只是它比较的是这两个对象在栈中的引用(即地址)。对象是放在堆中的,栈中存放的是对象的引用(地址)。由此可见'=='是对栈中的值进行比较的。如果要比较堆中对象的内容是否相同,那么就要重写equals方法了。2. Object类中的equals方法就是用'=='来比较的,所以如果没有重写equals方法,equals和==是等价的。通常我们会重写equals方法,让equals比较
阅读全文
摘要:Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其主要内容,而且要将 = =和 equals列为重要的对比概念来学习1、声明格式 public boolean equals(Object obj)其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false.比如以下两个对象animal1和animal2,引用不同的对象,因此用==或equals()方法比较的结果为false;而animal1和animal3变量引用同一个DOg对象,因此用= =或者equals()方法比较的
阅读全文