首页 > 编程语言 > 详细

Java中 equals 和 ==区别

时间:2021-03-28 22:05:03      阅读:19      评论:0      收藏:0      [点我收藏+]

技术分享图片

String s1="abc";//变量仅存在于方法区,

String s2="abc;//变量仅存在于方法区,值相同只保留一份

String s3=new String("abc");//创建两个对象,方法区一份(与之前值相同,只保留一份),堆中一份.

(s1==s2)true;//s1,s2都没有堆地址。方法区变量具有唯一性,共享性(Static 变量同样放入方法区,同样有这个特征)

(s1==s3)false;//s1的方法区地址与s3的堆地址不同,故false

equals true;//比较方法区地址,s1,s2,s3有一个共享方法区地址

另外 hashCode值相同与否,同样先看方法区地址相同与否(与equals优先取地址相同)。

Java中 equals 和 ==区别

原文:https://www.cnblogs.com/fire-light/p/14589906.html

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