对象的比较

有俩种方式可用于对象间的比较,他们是” == “ 运算符与equals()方法。

”==“运算符用于比较俩个对象内存地址值是否相等,equals()方法用于比较俩个对象的内容是否一致。

例:

public class java_ex08 {
public static void main(String[] args){
String str1 = new String("java");
String str2 = new String("java");
if(str1 == str2){
System.out.println("str1 == str2 ");
}else{
System.out.println("str1 != str2 ");
}
}


}

结果:

str1 != str2 

解析:

这是为什么呢?。这是因为new String("java")分别实例化了String类的俩个对象,

此时,这俩个对象指向不同的内存空间,所以他们的内存地址是不一样的。

这个时候程序是用”==“比较,比较的是内存地址值,所以输出str1 != str2 

再来看下下面的例

public class java_ex08 {
public static void main(String[] args){
String str2 = new String("java");
String str3 = str2;
if(str2 == str3){
System.out.println("str2 == str3 ");
}else{
System.out.println("str1 != str2 ");
}
}
}

结果:

str2 == str3 

解析:

str2的引用赋给了str3,这个时候就相当于str3也指向了str2的引用,此时,这俩个对象指向的是同一内存地址,所以比较结果是str2 == str3 。

下面比较下对象内容,使用equals()方法

例:

public class java_ex08 {
public static void main(String[] args){
String str1 = new String("java");
String str2 = new String("java");

if(str1.equals(str2)){
System.out.println("str1 equals str2 ");
}else{
System.out.println("str1 not equals str2 ");
}
}


}

结果:

str1 equals str2 

例:

public class java_ex08 {
public static void main(String[] args){
String str2 = new String("java");
String str3 = str2;
if(str2.equals(str3)){
System.out.println("str2 equals str3 ");
}else{
System.out.println("str2 not equals str3 ");
}
}

结果:

str2 equals str3 

解析:

所以比较对象内容时用equals。

调用equals()方法的是String类的对象,所以可以知道equals是String类中的方法。

在这里记住”==“是比较内存地址值得,”equals()“方法是比较内容的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值