黑马程序员技术交流社区
标题:
关于==与equals的问题?
[打印本页]
作者:
上帝的寵兒
时间:
2015-11-2 23:39
标题:
关于==与equals的问题?
各位大神,在Person类中重写了equals方法和hashCode方法,hashcode方法的内部实现如代码所示,测试中,如果p1和p2的姓名和年龄完全相同,打印出来的地址值是一样的,但为什么p1==p2的结果是false呢???
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
复制代码
作者:
chenhaiqian
时间:
2015-11-3 01:05
如果p1和p2的姓名和年龄完全相同,打印出来的地址值是一样的???
新建的不同的对象地址值怎么会是一样的呢??? (除非引用地址重新指向)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2