你可真的知道equals与==的区别??

 

在Java编程中,我们常常会用到equals方法和==运算符来比较两个对象的相等性。虽然它们看起来很相似,但它们的行为却有着很大的区别。

一、==运算符

1.1

首先,让我们来看看==运算符。 ==用于比较两个对象的引用是否相同,也就是判断它们是否指向同一个内存地址。如果两个对象指向同一个内存地址,则它们是相等的。

下面是一个例子,其中s1和s2都是String对象:

String s1 = "hello";
String s2 = "hello";
if (s1 == s2) {
    System.out.println("s1和s2指向同一个内存地址");
}

运行上述代码,它会输出s1和s2指向同一个内存地址,因为"hello"字符串在内存中只有一份,所以s1和s2都指向同一个内存地址。

1.2

int x = 5;
int y = 5;
if(x == y) {
    System.out.println("x equals y");
} else {
    System.out.println("x does not equal y");
}

在这个例子中,我们创建了两个int类型的变量x和y,并且它们的值都是5。我们使用==运算符比较它们的值,由于它们的值相等,所以输出结果为x equals y。

需要注意的是,==运算符只能比较基本数据类型的值,对于引用数据类型,它比较的是它们在内存中的地址是否相同,而不是它们的值是否相等。如果想要比较引用数据类型的值是否相等,需要使用equals()方法。

二、 equals方法

接下来,让我们来看看equals方法。与==运算符不同,equals方法用于比较两个对象的内容是否相等。通常,我们需要重写equals方法来比较自定义对象的相等性。

下面是一个例子,其中Person是一个自定义类:

Person p1 = new Person("张三", 20);
Person p2 = new Person("张三", 20);
if (p1.equals(p2)) {
    System.out.println("p1和p2的内容相等");
}

运行上述代码,它会输出p1和p2的内容相等,因为我们在Person类中重写了equals方法,用于比较两个Person对象的属性是否相等。

三、 总结

在Java编程中,我们应该正确地使用==运算符和equals方法来比较对象的相等性。如果我们需要比较两个对象的内容是否相等,应该使用equals方法;

如果我们需要比较两个对象的引用是否相同,应该使用==运算符。同时,我们还需要注意一些特殊情况,例如null引用的比较等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江边小子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值