一、==:运算符
1.可以使用在基本数据类型和引用数据类型之间
2.如果是基本数据类型:比较的是数据的值char、int、double...都可以参与比较(除了boolean)
例如:char c='10';int i=10;double d=10.0;
c==i;//true c==d;//true i==d;//true
如果是引用数据类型:比较的是两个对象地址值是否相同,即两个引用是否指向同一个对象
例如:String s1="str";String s2="str";String s3=s1;
s1==s2;//false s3==s1;//true
二、equals():方法
适用于引用数据类型
Object类中的equals()方法
public boolean equals(Object obj){
return this==obj;
}
像String,Date,File等常用引用数据类型都会重写equals()方法
实际上比较的是引用数据的“实际内容”
如果新建的类想要比较"实际内容",一般都需要自己重写equals()方法
例:
public boolean equals(Object obj) {
if(obj==this)
return true;
else if(obj instanceof Customer){
Customer cust=(Customer)obj;
return id==cust.id&&name.equals(cust.name);
}else {
return false;
}
}
本文详细介绍了Java中运算符==和equals()的区别。对于基本数据类型,==比较的是数值,而对于引用数据类型,它比较的是对象的引用。另一方面,equals()方法默认比较对象引用,但在许多类如String中被重写以比较对象内容。当自定义类时,通常需要重写equals()来比较对象的属性。
694

被折叠的 条评论
为什么被折叠?



