“==”與"equals(object)"的區別
阿新 • • 發佈:2017-10-01
堆內存 一個 [] 數據 pub 區別 基本數據類型 color style
一、對於基本數據類型而言只能用“==”,不能用equals來進行比較,若使用equals來進行比較,則不能通過編譯
二、在非字符串的對象的比較中:
“==”與“equals()”比較的均是對象在堆內存中分配的首地址。(即使比較兩個變量是否指向同一個對象)
public class B1 { public static void main(String as[]) { B1 a= new B1(); B1 b=new B1(); System.out.println(a==b);//false System.out.println(a.equals(b));//false } }
三、在字符串對象的比較中的區別:
“==”,比較的是首地址
equals(): 比較的是裏面的內容。
String x1=new String("aass"); String x2=new String("aass"); String x3=new String(x1); System.out.println(x1.equals(x2));//返回true;裏面的內容相同 System.out.println(x1==x2);//返回false;x1與x2不是同一個對象,所以首地址不同 System.out.println(x1==x3);//返回false;理由同上 System.out.println(x1.equals(x3));//返回true;裏面的內容都是“aass” String a1="abc"; String a2="abc"; String a3=new String("abc"); System.out.println(a1==a2);//返回true; System.out.println(a1==a3);//返回false
“==”與"equals(object)"的區別