您现在的位置是:首页 > 文章详情

关注对象公共方法

日期:2018-08-11点击:499

hashcode

默认对象在内存中的存储地址
用来配合hashSet 等集合框架,put的时候,快速判断不存在用的,hashcode一样再比equal。(小心:equal一样的对象一定要有一样的hashcode,可以使用equal中的相关属性的hashcode,否则hashMap分分钟给你空指针)

equal

比一样的值的。比如你和我一样是P6,但是你的P6是你的P6,不是一个,但是值是一样的。
复用集合时重要方法,覆盖equal时一定要覆盖hashcode不然集合框架就不工作了。

==

比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。

toString

默认返回 类+hashcode。一定要覆盖toString,反馈对象的属性,他只在调试和日志中其诊断作用,反馈更多的内容,方便api使用者诊断问题。在单元测试中也起重要作用!

 public String toString() { return MoreObjects.toStringHelper(this).omitNullValues() .add("name", name) .add("sex", sex) .toString(); }

clone

忽略这个方法,自己在外部自己写 T copy(T)的逻辑来替代clone。这个clone方法危险,分分钟出故障

comparable

考虑实现comparable接口,他的compareTo方法,还有大小关系,是eqaul的很好的补充

原文链接:https://yq.aliyun.com/articles/624366
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章