首页 相关文章 Effective java学习笔记8

Effective java学习笔记8


  啥?我只是改写equal()不行么?我看到这里也是这么想得。
  这个是由于要遵从Java.lang.object的规范第二条:
  两个根据equal()相等的对象他们返回的hashcode值也必然相等。
  假如你改写了equal()方法,令两个实际不是一个对象的两个实例在逻辑上相等了,但是hashcode却是不等。
  所以要记得改写hashcode。
  不改写会带来什么后果呢?当然,比如你在用hashmap,hashtable之类的设计hashcode的类的时候,就会出麻烦了。
  至于如何改写一个hashcode,这就有好有坏了,看各人的功底了。现在还有专门的科学家在研究优秀的hash算法。
  
  总是要改写tostring()
  这个并没有严格的规定,不想hashcode那样会带来灾难性的陷阱。
   但是,java也是有提到”建议改写tostring()”
   因为这样可以给我们更好的一个习惯,以及更好的一个风格。
   很简单,假如一个object我们并没有改写它的tostring,那么调用这个object的tostring()方法,将得到一串难以理解的string...[ 查看全文 ]

2016-02-19 标签:

Effective java学习笔记8的相关文章

手机页面
收藏网站 回到头部