“==“與“equals“的區別
阿新 • • 發佈:2021-05-23
public class test {
public static void main(String[] args) {
String s1="abc";
String s2=s1;
String s3=new String("abc");
String s4=new String("abc");
String s5="abc";
System.out.println("s1==s5:"+( s1==s5));
System.out.println("s1==s2:"+(s1==s2));
System.out.println("s1.equals(s2):"+s1.equals(s2));
System.out.println("s3==s4:"+(s3==s4));
System.out.println("s3.equals(s4):"+s3.equals(s4));
}
}
結果:
==
"= ="比較2個物件在記憶體裡是不是同一個物件,就是說在記憶體裡的儲存位置一致。
equals
“= =“比較的是"引用"而"equals方法"比較的是"內容”。public boolean equals(Object obj) 此方法由Object物件提供,可以由子類進行重寫。預設的實現只有當物件和自身進行比較時才會返回true,這個時候和”= ="等價。String,BitSet,Date和File都對equals方法進行了重寫,對2個String物件而言,值相等意味著它們包含同樣的字元序列。對於基本型別的包裝類來說,值相等意味著對應的基本型別的值一樣。