随笔 - 115  文章 - 0  评论 - 0  阅读 - 40055

Java面试题 P10:hashCode与equals区别

一、hashCode

hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。

 二、equals

equals它的作用也是判断两个对象是否相等,如果对象重写了equals()方法,比较两个对象的内容是否相等;如果没有重写,比较两个对象的地址是否相同,价于“==”。同样的,equals()定义在JDK的Object.java中,这就意味着Java中的任何类都包含有equals()函数。

1、用于定义对比两个对象的对比规则,来判断这两个对象什么时候是相等的,什么时候是不相等的

2、默认使用object的equals,实际上就是==号,对比的是对象在栈中的引用的地址,如果是基本类型变量的话对比的是栈中的值,对比的是引用地址。

复制代码
 1 public static void main(String[] args)
 2     {
 3         Person a=new Person("a");
 4         Person b=new Person("a");
 5 
 6         String c="aa";
 7         String d="bb";
 8         //equals
 9         System.out.println(a.equals(b));
10         System.out.println(c.equals(d));
11         //hashCode
12         System.out.println(a.hashCode());
13         System.out.println(b.hashCode());
14         System.out.println(c.hashCode());
15         System.out.println(d.hashCode());
16 
17         System.out.println(a);
18         System.out.println(Integer.toHexString(a.hashCode()));
19     }
复制代码

结果:

1 false
2 false
3 149928006
4 713338599
5 3104
6 3136
7 com.atguigu.controller.Person@8efb846
8 8efb846

 

posted on   wuzx-blog  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示