== 和 .equals() 的区别经常混淆不少的程序员。
查资料以后才发现了== 是比较两个对象的参考值但是e.equals() 是比较连个对象的意义或者内容。
简单的说 == 是一种表面比较,.equals()深得比较。
[code="java"][/code]
public class TestEquals {
public static void main(String[]args){
TestEquals test = new TestEquals();
test.f();
}
public void f(){
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
if(str1 == str2){
System.out.println("== >> OK啦!");
}else{System.out.println("== >> 不OK啦!");}
if(str1.equals(str2)){
System.out.println(".equals>>> OK啦!");
}else{System.out.println(".equals>>> 不OK啦!");}
if(str2 == str3){
System.out.println("== >> OK啦!");
}else{System.out.println("== >> 不OK啦!");}
if(str2.equals(str3)){
System.out.println(".equals>>> OK啦!");
}else{System.out.println(".equals>>> 不OK啦!");}
}
}
[quote][/quote]
输出结构:
== >> OK啦!
.equals>>> OK啦!
== >> 不OK啦!
.equals>>> OK啦!
查资料以后才发现了== 是比较两个对象的参考值但是e.equals() 是比较连个对象的意义或者内容。
简单的说 == 是一种表面比较,.equals()深得比较。
[code="java"][/code]
public class TestEquals {
public static void main(String[]args){
TestEquals test = new TestEquals();
test.f();
}
public void f(){
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
if(str1 == str2){
System.out.println("== >> OK啦!");
}else{System.out.println("== >> 不OK啦!");}
if(str1.equals(str2)){
System.out.println(".equals>>> OK啦!");
}else{System.out.println(".equals>>> 不OK啦!");}
if(str2 == str3){
System.out.println("== >> OK啦!");
}else{System.out.println("== >> 不OK啦!");}
if(str2.equals(str3)){
System.out.println(".equals>>> OK啦!");
}else{System.out.println(".equals>>> 不OK啦!");}
}
}
[quote][/quote]
输出结构:
== >> OK啦!
.equals>>> OK啦!
== >> 不OK啦!
.equals>>> OK啦!