Java String 重写 equal() hashCode()学习笔记 2022-3-19

String类重写了equals()方法

Object的equals()方法,本意是比较两个对象的内存地址是否相同,准确地说,比较两个引用变量指向的地址是否相同
String重写后的equals()方法,则是来比较两个字符串是否“相同”

equals()方法源码如下:

分析

先比较两个对象的内存地址是否相同;如果相同,直接返回true;
如果不同,再在if(object instanceof String){}的判断语句内,判断两个字符串对象内部的字符数组的长度是否相同,如果不是,返回false;
如果是,则0开始,逐个字符比较

思考:为什么重写equals()方法,还要重写hashCode()方法?

hashCode()是一个本地方法,本来的作用:将对象的内存地址转化成int型整数并返回;

Java规定,equals()方法与hashCode()方法应满足三点:1、2、3:
重写hashCode()方法,抛弃其原本的作用,遵守Java约定

String重写后的hashCode()方法

posted @ 2022-03-19 18:55  紫薇哥哥  阅读(186)  评论(0编辑  收藏  举报