==和equals的区别
更新: 2025/12/6 字数: 0 字 时长: 0 分钟
==在比较基本数据类型时比较的是具体值内容,在比较引用类型时比较的是地址值,equals一般都会重写方法用于比较指向对象的值,如果不重写,则比较指向对象存储的地址
java
Integer aaa=new Integer(5);
Integer bbb=new Integer(5);
int a=10;
int b=10;
String str1=new String("justice");
String str2=new String("justice");
String str3;
str3=str1;
System.out.println(aaa==bbb); //false
System.out.println(aaa.equals(bbb)); //true
System.out.println(a==b); //true
System.out.println(str1==str2); //false
System.out.println(str1.equals(str2)); //true
System.out.println(str1==str3); //true
System.out.println(str1.equals(str3)); //trueaaa和bbb都是Integer封装类型,变量存储地址,所以==为false,equals为true
a和b是变量存储值,==为true,没有equals
string是引用类型,变量存储地址,所以==为false,equals为true
str3指向str1,相同地址,所以存储数据相同==为true,地址equals也为true