1. 程式人生 > >“==”與"equals(object)"的區別

“==”與"equals(object)"的區別

堆內存 一個 [] 數據 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)"的區別