一、==:运算符
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;
}
}