Java 深入学习(16) —— equals 与 ==

《Java编程思想》P44

关系操作符生成的是一个 boolean 结果,他们计算的是操作数的值之间的关系。要想比较两个对象的实际内容是否相同,必须使用所有对象都适用的特殊方法 equals()。但这个方法不适用于“基本类型”,基本类型直接使用 == 和 != 即可。

通过一个例子体会一下二者之间的区别:

这里写图片描述

(关于自动装箱、拆箱可以通过之前的博文http://blog.csdn.net/heatdeath/article/details/78726407进行了解)

equals() 默认行为是比较引用,除非在自己的新类中覆盖 equals 方法。

这里写图片描述

覆盖了 equals() 后,测试结果如下:

这里写图片描述

这里写图片描述


总结:

  1)对于 == 关系操作符,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

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

  2)对于 equals 方法,注意: equals 方法不能作用于基本数据类型的变量

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值