考点介绍:
hashcode和equal是java关键字里面出现频度比较高的考点,需要对以equals的特殊情况掌握到位。同时,又需要对hash本身的有底层实现有一定的了解。
本期分享的java关键字之hashcode和equal,分为试题、文章以及视频三部分。
答案详情解析和文章内容点击下方链接即可查看!
一、考点题目
1.hashCode() 和 equals() 方法重要性何在 ?
解答:Java中的 HashMap 使用 hashCode 和 equals 方法来确定键值对的索引。根据键去查询对应的值时,同样会用到这两个方法。如果这两个方法没有正确实现,两个不同的键可能会产生相同的 hash 值,因此会被 collection 认为是相同的。并且,这两个方法在检测重复时也会用到……
2.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
解答:不对,两个对象的 hashCode()相同,equals()不一定 true。代码示例……
*3.针对下面的代码块,哪个equal为true:()
String s1 = "xiaozhaoVIP" ;
String s2 = "xiaozhaoVIP" ;
String s3 =new String (s1);*
A.s1 == s2
B.s1 = s2
C.s2 == s3
D.都不正确
正确答案:A,string是final修饰的,会将创建的变量放入字符串常量池,当再创建同样的字符串时,发现常量池中有则直接使用……
4.为什么重写equals时必须重写hashCode方法?
解答:hashCode 的作用是获取哈希码,也称为散列码,它实际上返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode定义在JDK的Object类中,这就意味着Java中的任何类都包含有hashCode函数。如果两个对象相等,则hashcode一定也是相同的……
(答案点击下方链接查看哦)
二、考点文章
1.equals()和hashCode()区别?
equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的……
2.hashcode()和equals()的作用、区别、联系
首先,我们讲讲一般常用的“==”和“equals()”;“==”运算符用来比较两个变量的值是否相等。也就是说,该运算符用于比较变量对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能使用“==”运算符……
3.Integer判断相等,到底该用==还是equals
这几天,被几道java基础练习题中的==和equals给绕晕了,所以打算把关于这块的内容好好总结下,争取下次再遇到类似的题目,自己不会再出错,恩,就是这样。简单了解在Object类中,equals方法的定义是这样的……
三、考点视频
1.static关键字小讲
static关键字可以理解成“共有”、“全局唯一”,即可以简单的考查本关键字的使用场景,也能进一步引申为并发的安全性和单例模式等。属于笔5面5考点,必须准备……