Effective java学习笔记7:改写equals的时候遵守约定

闪LJC

闪LJC

2016-02-19 13:22

下面请跟着图老师小编一起来了解下Effective java学习笔记7:改写equals的时候遵守约定,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

  在Java里面object equals()的概念是两个引用指向的是同一个对象,即两者指向同一个对象,才equals()。但是也有特例,比如说一些原始类型,integer,string等属于值相等。就是说,值相等,也就equals()了。实际上,他们都改写了object的equals()方法。但是”类型安全”的值类不需要改写equals()。
  还有,当我们当前的类有特定的”相等”的定义的时候,而且我们的超类并没有改写equals()方法,就需要改写equals()方法了。
  改写的规范-object必须满足:
  1. 自反
  2. 对称
  3. 传递
  4. 一致
  5. X非空,x.equals(null)返回false
  
  为了实现高质量的equals()改写,effective java提醒我们要注重一下几点:
  1. 使用==操作符检查是否指向同一个对象,这是一个性能优化的手段。
  2. 使用instanceof来检查是否为某个类,同样也是性能优化的手段。
  3. 把实参转换到正确的类型,上面一步保证了这一步不会有错误。
  4. 检查类里的每一个要害域是否都相等。
  
  还有要注重的就是,改写equals()方法的同时,都要改写hashcode方法。(下一篇里会提到为什么要这样)
  
  -转载请注明来自:www.matrix.org.cn
展开更多 50%)
分享

猜你喜欢

Effective java学习笔记7:改写equals的时候遵守约定

编程语言 网络编程
Effective java学习笔记7:改写equals的时候遵守约定

Effective java学习笔记8

编程语言 网络编程
Effective java学习笔记8

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

宝宝不遵守约定 怎么办

育儿知识 怀孕 孕妇
宝宝不遵守约定 怎么办

Effective java学习笔记6:避免使用finalizer()函数

编程语言 网络编程
Effective java学习笔记6:避免使用finalizer()函数

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

java学习经验 Ajax 学习笔记

Web开发
java学习经验 Ajax 学习笔记

java 学习笔记(入门篇)_java的基础语法

编程语言 网络编程
java 学习笔记(入门篇)_java的基础语法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JavaBean 在jsp和serlvle中传递技术要点

JavaBean 在jsp和serlvle中传递技术要点

网站用户体验设计(UE)

网站用户体验设计(UE)
下拉加载更多内容 ↓