学习《Effective JAVA》(二)

第三章 对于全部对象都通用的方法性能

第8条:覆盖equals时请遵照通用约定测试

不覆盖equals方法的任一条件:code

类的每一个实例本质上都是惟一的。对象

不关心类的是否提供了“逻辑相等”的测试功能。blog

超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的。排序

类是私有的或是包级私有的,能够肯定它的equals方法永远不会被调用。继承

覆盖equals所需遵照的条件:接口

覆盖equals方法时总要覆盖hashcode()hash

不要企图让equals方法过于智能class

不要将equals方法中声明的Object对象替换为其余的类型

第9条 覆盖equals方法时总要覆盖hashCode

错误的hash Code的方法将会下降散列表的性能

不要试图从散列码计算中排除一个关键域来提升性能

第10条始终覆盖toString

toString 方法应该返回对象中包含的全部值的关注的信息

第11条谨慎覆盖clone

覆盖clone问题不少,自行编写一个静态克隆方法会更好

第12条考虑实现Comparable接口

考虑到排序,需实现Comparable

相关文章
相关标签/搜索