关系运算符比较的是啥,equals()比较的是啥

本文详细介绍了Java中关系运算符`==`和`!=`在比较对象时的实际行为,特别是对于Integer类型的特殊情况。内容强调了这些运算符比较的是对象引用而非内容,并举例说明了当值在[-128,127]范围内时,Integer对象的缓存导致的特殊情况。此外,还讨论了`equals()`方法的默认行为及其在String类中的重写,以及如何在自定义类中正确重写`equals()`以比较对象内容。

关系运算符(==, !=)比较的是啥?equals()比较的是啥

关系运算符

关系运算符会通过产生一个布尔(boolean)结果来表示操作数之间的关系。如果关系为真,则结果为 true,如果关系为假,则结果为 false。关系运算符包括小于 <,大于 >,小于或等于 <=,大于或等于 >=,等于 == 和不等于 !=。

== 和 != 可用于所有基本类型,但其他运算符不能用于基本类型 boolean,因为布尔值只能表示 true 或 false,所以比较它们之间的 “大于” 或 “小于” 没有意义。

== 和 != 测试对象等价

== 和 != 用于比较对象时,比较的是对象引用。但有个特殊情况

特殊情况

基本数据类型int 的包装类型 Integer 有些特殊。

关系运算符 == 和 != 同样适用于所有对象之间的比较运算,但它们比较的内容却经常困扰 Java 的初学者。下面是代码示例:

// operators/Equivalence.java
public class Equivalence {
   
   
    public static void main(String[] args) {
   
   
        Integer n1 = 47;//(自动装箱)反编译:系统自动执行valueOf方法,拆箱则是:intValue方法。
        Integer n2 = 47;
        System.out.println(n1 == n2); //true
        System.out.println(n1 != n2); //false

		System.out.println("-----------------------------");
		System.out.println("如果是通过new创建出来的,肯定不等");
		Integer i1 = new Integer(47);
        Integer i2 = new Integer(47);
        System.out.println("i1 == i2:"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值