您的位置:首页 > 职场人生

关于==和equals的区别和联系,面试这么回答就可以

2019-05-19 22:00 232 查看

https://blog.csdn.net/qq_27471405/article/details/81010094
长篇大论的话,我这里就不多写了,相信大家入门java 的时候就知道个大概了,这里想表述的是,如果面试官问你《关于==和equals的区别》,该怎么回答完美呢?可以这样说

总结的来说:

1)对于==,比较的是值是否相等

如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

如果作用于引用类型的变量,则比较的是所指向的对象的地址

2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象

如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

eg:说一下我的个人理解哈,我看了视频和网上的视频,第一 :==一般用在基本数据类型中用来比较值的大小,而equals在object包中所以几乎不会用在基本数据类型中,假如**==用在了引用数据类型中,则是在比较地址**,而相比于equals则是比较对比的数地址所对的值**,也就是说虽然equals也在比较地址但是它的最终结果还是值的大小。**

最后的最后,==不可以被重写,而equals往往重写(程序员往往不会满足object给你的equals(比较引用数据类型的值大小)功能)。

同时这个东西比较困难的地方是在String字符串上的对比,相信在面试题和试卷上经常性的出现这样 的题目,虽然没有实际的作用,但是依旧纠缠我们。
如果大家存在疑惑可以通过回想String常量池和String的new。同时下面也是一个特例,和常量池一样的原理。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: