1.hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解请 参考 [1]  public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能

2.equals  了解需要看这个http://www.cnblogs.com/dolphin0520/p/3592500.html

String str = new String("hello");

String str1 = new String("hello");

sys.out.println(str == str1) ;

sys.out.println(str.equals(str1));

第一个为false;第二个为true;     str和str1指向两个不同的对象。是两个不同的象的引用。地址是不同的。str = str1;str1指向了第一个对象的地址。两者就变成相等的了。

第二个是因为string 对equals进行了重写。

还可以看看这个http://www.cnblogs.com/lulipro/p/5628750.html

3.public boolean equals(Object obj)

Object类中默认的实现方式是  :   return this == obj  。那就是说,只有this 和 obj引用同一个对象,才会返回true。

4. 两者比较相关博客推荐http://www.cnblogs.com/lulipro/p/5628750.html

5.为什么需要重写hashCode?

这样如果我们对一个对象重写了euqals,意思是只要对象的成员变量值都相等那么euqals就等于true,但不重写hashcode,那么我们再new一个新的对象,
当原对象.equals(新对象)等于true时,两者的hashcode却是不一样的,由此将产生了理解的不一致,如在存储散列集合时(如Set类),将会存储了两个值一样的对象,
导致混淆,因此,就也需要重写hashcode()

												

最新文章

  1. Map三种遍历方式
  2. Mysql 5.7.10以上版本安装大坑
  3. JS初学之-循环生成坐标
  4. 生成静态页面的PHP类
  5. leetcode 15. 3Sum 双指针
  6. google浏览器图标显示不正常怎么办
  7. bzoj 3679: 数字之积
  8. Jmeter接口测试操作
  9. 剑指offer(30)连续子数组和的最大值
  10. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
  11. <数据结构与算法分析>读书笔记--运行时间计算
  12. MATLAB——神经网络train函数
  13. BZOJ4764弹飞大爷——LCT
  14. vm 虚拟机选择启动项
  15. 使用pickle进行存储变量
  16. java面向对象之个人总结
  17. HTML5、CSS3与响应式Web设计入门(2)
  18. Ubuntu下安装使用Xfce4
  19. Java面向对象-面向对象编程之基本概念
  20. Silverlight 鼠标双击 事件

热门文章

  1. 常规函数模块CALL in new task 报错
  2. springboot Thymeleaf中格式化jsr310新日期时间类(LocalDateTime,LocalDate)--thymeleaf格式化LocalDateTime,LocalDate等JDK8新时间类
  3. JQ操作select项
  4. Xmemcached与SpringBoot实际案例
  5. mysql学习之join从句
  6. Redis 常用命令学习二:字符串类型命令
  7. Python笔记001-Python入门
  8. 20191011-构建我们公司自己的自动化接口测试框架-Util的getTestSuite模块
  9. 1186: 零起点学算法93——改革春风吹满地(C)
  10. Aso.Net Core 的配置系统Configuration--转