Java细节
equals()与==的区别
- ==:对于基本类型,比较它们的值;对于引用,比较引用是否指向同一个对象,即比较堆中地址
- equals():比较的也是对象的地址(Thinking in Java, page 489),只是如String,Integer,Data等对继承自Object的equals()重载了而已。所以给人们的感觉是equals()是比较值。(具体equals可以查看Object.equals() 源码)
hashCode()
若不覆盖hashCode(),则它默认使用对象的地址计算散列码