如何使用== 、!=和equals()来测试对象的等价性

在Java编程中,比较基本类型和对象的等价性时,需要正确使用==、!=和equals()。基本类型直接用==和!=,而对象比较时,基本类型的包装类和大多数类库中的类已实现equals(),比较内容而非引用。对于自定义类,需要覆盖equals()方法以实现所需内容比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在有些情况下我们很可能会要比较两个基本数值,两个对象是否等价的问题,这时我们就要用到区分== 、!=和equals()。

而如何区分== 、!=和equals()的用法还有如何运用它们来解决问题呢?

首先,在java中,两个基本类型的比较就直接用 == 和 !=即可。

如 int i = 1;

System.out.println( 1 == i);

答案肯定为 true;

而对于类的对象的比较问题则可以将类分为 基本类型的包装类(如Iterger等)、大多数java类库里的类 还有 自己定义的类这两种情况。

第一种:基本类型的包装类(如Iterger等)、大多数java类库里的类:

它们的equals()都已经实现了,比较的都是对象的内容而非比较对象的引用。

而它们的 == 与 != 都是比较对象的引用。

如 public class Equivalence{

public static void main(String[] args){

    Integer  n1 = new Integer(47);

Integer  n2 = new Integer(47);

System.out.println( n1.equals(n2) );

}

}

答案为

true.


如 public class Equivalence{

public static void main(String[] args){

    Integer  n1 = new Integer(47);

Integer  n2 = new Integer(47);

System.out.println( n1 == n2);

System.out.println( n1 != n2);

}

}

答案先后为 false;

true.


第二种:自己定义的类

因为自己定义的类没有实现equals()方法,所以我们需要根据自己的情况,对类的equals()进行方法的覆盖,否则它将默认是比较引用。 

而它的 == 与 != 都是比较对象的引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值