Skip to content

==和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));		//true

aaa和bbb都是Integer封装类型,变量存储地址,所以==为false,equals为true

a和b是变量存储值,==为true,没有equals

string是引用类型,变量存储地址,所以==为false,equals为true

str3指向str1,相同地址,所以存储数据相同==为true,地址equals也为true

本站访客数 人次 本站总访问量