equals()是Object类提供的一个方法,众所周知,每一个java类都继承自Object,所以说每一个对象都有一个equals()方法,我们在用这个方法时却一般重写这个方法

Object类中equals()方法源码

    public boolean equals(Object obj) {
return (this == obj);
}

此时比较的是两个引用是否指向同一个对象,我们来使用这个方法的时候往往是希望比较两个对象逻辑上是否相等

String类重写了equals()方法,因此:

        String a=new String("aa");
String b="aa";
System.out.println(a.equals(b));//true
System.out.println(a==b); //false System.out.println(a.hashCode());
System.out.println(b.hashCode());

hashCode()方法也是从Object类继承来的,返回该对象的哈希码值,这个值通常是该对象的内部地址返回来的整数,它的实现主要是为了提高哈希表的性能

hashCode()的返回值与equals()的关系如下

如果x.equals(y)返回 true ,那么x和y的hashCode()值必须相等

如果x.equals(y)返回 false ,那么x和y的hashCode()值有可能相等,有可能不等

重写equals()方法就要重写hashCode()方法

最新文章

  1. css3媒体查询实现网站响应式布局
  2. typeof(self) 的作用
  3. echarts引入及应用
  4. net user命令集合详解
  5. 移动安全时代,如何保护你的app
  6. ♫【jQuery插件】图片放大镜
  7. [转] Console命令详解,让调试js代码变得更简单
  8. CodeSmith使用总结--下拉列表和文件夹对话框属性
  9. THUSC2015
  10. 学了Java 你未必知道这些
  11. Linux指令--df,du
  12. codefroces 297E Mystic Carvings
  13. Spring Boot Externalized Configuration
  14. Openstack 集群,及常用服务的 高可用 haproxy配置
  15. 常用的Hql语句
  16. MySQL8的新特性CTE
  17. zoj 月赛B题(快速判断一个大数是否为素数)
  18. c# String.IndexOf 方法 string查找字符串
  19. 28_java之mysql的CRUD
  20. Delegate(QLabel和QComboBox)

热门文章

  1. JS学习笔记2_面向对象
  2. VIM 实现tab标签页及分屏,切换命令
  3. .NET MVC中如何使用手机验证码注册登陆
  4. 配置iSCSI部署网络存储
  5. javascript 模块化学习:Class打包出来无法实例化问题
  6. 将 Microsoft Excel 导入至 MySQL
  7. 基于cytoscape.js 、 d3.js实现的关系图谱初级版本
  8. Python上下文管理协议:__enter__和__exit__
  9. NPM(Node Package Manager,Node包管理器)
  10. [Leetcode]495.提莫攻击