==跟.equals() 的区别

==和.equals() 的区别
== 和 .equals() 的区别经常混淆不少的程序员。
查资料以后才发现了== 是比较两个对象的参考值但是e.equals() 是比较连个对象的意义或者内容。
简单的说 == 是一种表面比较,.equals()深得比较。




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啦!");}
}
}

引用


输出结构:

== >>  OK啦!
.equals>>>  OK啦!
== >>  不OK啦!
.equals>>>  OK啦!