Java中“==”与equals()的区别

对于关系操作符“==”,《Java编程思想》中是这样描述的:“关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系”。这里的操作数的“值”值得我们注意。对于8种基本数据类型(boolean,byte,char,short,int,float,double,long),它们的变量直接存储的就是“值”。所以,我们用“==”对基本数据类型的变量进行比较时,实际比较的就是变量存储的值,例如:
public static void main(String[] args) {
int a = 5, b = 5;
System.out.println(a == b);
}
很明显,程序将输出:true。但是,下面这段代码呢?
public static void main(String[] args) {
Integer c = new Integer(5), d = new Integer(5);
System.out.println(c == d);
}
我们运行程序,发现输出的是:false。这是因为Integer并非Java中的基本数据类型,其变量c、d在Java中被称为指向对象的引用,其存储的“值”是对象在内存中的地址,而非值“5”本身。所以,c和d实际存储的分别是两个value值都为“5”的Integer对象的地址,这两个对象不在同一块内存空间,“==”比较的结果自然是false了。
那么equals()方法比较的是什么呢?equals()是基类Object中定义的方法,在Object类中,equals()方法定义为:
public boolean equals(Object obj) {
return (this == obj);
}
这等价于“==”。其实,equals()方法的意义在于重写,否则对equals()的调用是没有意义的。例如,继承自Object的Integer类便重写了equals()方法:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
该方法的意义是对value值进行比较,那么如果我们对于两个具有相同value值的Integer对象调用equals()进行比较:
public static void main(String[] args) {
Integer c = new Integer(5), d = new Integer(5);
System.out.println(c.equals(d));
}
结果便是true。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# ==
# 与equals()
# 与equals()区别
# 与equals()详解
# Java equals()方法使用详解及总结
# Java中==符号与equals()的使用详解(测试两个变量是否相等)
# 详解Java中==和equals()的区别
# Java中==和equals()的区别总结
# Java中equals()方法实例详解
# Java中equals()方法重写实现代码
# Java中的== 和equals()方法详解与实例
# 详解java==运算符和equals()方法的区别
# Java自定义实现equals()方法过程解析
# Java中equals()方法的理解与使用方法例子
# 的是
# 是这样
# 这段
# 这两个
# 希望能
# 写了
# 重写
# 被称为
# 什么呢
# 而非
# 很明显
# 谢谢大家
# 这是因为
# 这等
# 都为
# 则对
# 类中
# double
# long
# int
相关文章:
建站之星各版本价格是多少?
如何通过宝塔面板实现本地网站访问?
如何通过网站建站时间优化SEO与用户体验?
广州营销型建站服务商推荐:技术优势与SEO优化解析
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何通过PHP快速构建高效问答网站功能?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
建站之星×万网:智能建站系统+自助建站平台一键生成
css网站制作参考文献有哪些,易聊怎么注册?
平台云上自主建站:模板化设计与智能工具打造高效网站
如何用已有域名快速搭建网站?
如何快速重置建站主机并恢复默认配置?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
济南网站制作的价格,历城一职专官方网站?
建站之星如何快速生成多端适配网站?
如何在阿里云通过域名搭建网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
制作电商网页,电商供应链怎么做?
建站之星后台密码遗忘如何找回?
如何实现建站之星域名转发设置?
如何快速搭建支持数据库操作的智能建站平台?
网站制作新手教程,新手建设一个网站需要注意些什么?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
一键网站制作软件,义乌购一件代发流程?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
C++用Dijkstra(迪杰斯特拉)算法求最短路径
建站之星如何配置系统实现高效建站?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
网站制作网站,深圳做网站哪家比较好?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
建站之星会员如何解锁更多建站功能?
如何用景安虚拟主机手机版绑定域名建站?
公司门户网站制作流程,华为官网怎么做?
宝塔Windows建站如何避免显示默认IIS页面?
建站之星导航如何优化提升用户体验?
建站主机数据库如何配置才能提升网站性能?
大连网站设计制作招聘信息,大连投诉网站有哪些?
表情包在线制作网站免费,表情包怎么弄?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
常州自助建站工具推荐:低成本搭建与模板选择技巧
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何选择美橙互联多站合一建站方案?
建站主机选购指南:核心配置与性价比推荐解析
已有域名建站全流程解析:网站搭建步骤与建站工具选择
如何快速搭建高效香港服务器网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。