首页 > 编程语言 > 详细

一道经典的Java面试题:equals ,== 和hashcode()的区别

时间:2019-11-14 00:43:49      阅读:122      评论:0      收藏:0      [点我收藏+]

一句话区别:==比较的是内存地址,equals比较的是值内容

结论:

从以下三点展开:

基本数据类型、字符串、对象

  1. 对于基本数据类型:只有==,没有equals.
  2. 对于字符串:==比较的是内存地址,equals比较的是值,需要在意的是new了一个String,会产生不同的对象,内存地址会发生变化
  3. 对于对象:==比较的是内存地址,equals比较的是值

 

如: String s1="abc";
  String s2="abc";
  s1.equals(s2) 是true 因为equals比较的是对象的内容
  而 s1==s2 是false 因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,s1和s2创建了不同的对象,所以内存地址肯定不同。

一道经典的Java面试题:equals ,== 和hashcode()的区别

原文:https://www.cnblogs.com/Fooo/p/11854154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!