1. 程式人生 > >Java中的關係操作符

Java中的關係操作符


package object;

class Value{
	int i;
}

public class E08_StaticTest {
public static void main(String[] args) {
    Integer n1= new Integer(47);
    Integer n2= new Integer(47);
    int         n3=12;
    int         n4=12;
    System.out.println(n1==n2);//比較的是物件的引用而非物件的內容
    System.out.println(n1!=n2);
    System.out.println(n3==n4);
    System.out.println(n3!=n4);
    System.out.println(n1.equals(n2));
    
    Value n5=new Value();
    Value n6=new Value();
    n5.i=n6.i=67;
    System.out.println(n5.equals(n6));//比較的是物件的引用而非物件的內容
}
} /* Output:
false
true
true
false
true
false
*///:~

在比較基本型別時,如int,double(n3,n4)等用==,!=比較兩者之間的大小;但對 new出來的物件(n1,n2)來說,必須使用equals()方法來比較兩個物件之間的大小關係。

對於使用者自己建立的類(n5,n6),比較大小關係時必須過載equals()方法,這是由於equals()方法的預設行為是比較引用,而非比較物件的內容。

大多數Java類庫都實現了equals()方法,以便用來比較物件的內容,而非比較物件的引用。

相關推薦

Java關係操作符“==”和equals()方法的區別

開發十年,就只剩下這套架構體系了! >>>   

Java關係操作符

       對於一般的基本資料型別關係不多講,這裡主要講下關係操作符 == 和 != 用在物件上會有什麼不一樣,看個例子: public class text { public static void main(String[] args)

Java關係操作符

 package object; class Value{ int i; } public class E08_StaticTest { public static void main(String[] args) { Integer n1= new I

你所不知道的,Java 操作符的秘密?

tint 正常的 示例 itl 相等 params obi equal 拷貝 在 Java 編程的過程中,我們對數據的處理,都是通過操作符來實現的。例如,用於賦值的賦值操作符、用於運算的運算操作符等、用於比較的比較操作符,還包括邏輯操作符、按位操作符、移位操作符、三元操作符

java :: Java的雙冒號操作符

運算 system println -c per 情況下 class out array java中的雙冒號操作符 定義 雙冒號運算操作符是類方法的句柄,lambda表達式的一種簡寫,這種簡寫的學名叫eta-conversion或者叫η-conversion。 通常的情

JavaJDK,JRE和JVM之間的關係-(轉載)

初學JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先從概念上理解一下吧,JDK(Java Development Kit)簡單理解就是Java開發工具包,JRE(Java Runtime Enviroment)是Java的執行環境,JVM( java virtual machine)也就是

java同一個類元素的相互關係

java中同一個類中元素的相互關係 1.同一類中方法和變數的呼叫關係       1.1.在同一個類中只能由方法來呼叫變數,不能用變數來呼叫方法。        1.2.在構造方法中呼叫變數。  &nbs

java的雙冒號操作符

定義 雙冒號運算操作符是類方法的控制代碼,lambda表示式的一種簡寫,這種簡寫的學名叫eta-conversion或者叫η-conversion。 通常的情況下: 把 x -> System.out.println(x) 簡化為 Syste

java父類和子類的關係和使用

在java中規定:一個父類可以有多個子類,但是一個子類只能有一個父類。子類可以通過extends關鍵字來繼承父類。做個比較通俗的比喻,就像一個父親可以有多個親孩子,但是一個孩子只能有一個親生父親。 1.繼承以及重寫:子類繼承父類是對父類屬性和方法的全面繼承,同時子類

JAVAreturn與finally的先後關係

1、finally中修改了值後,會不會影響return的值? 具體例子: public static int returnValue2() { int i = 1; try{ return i;

java 物件的 一對一關係 (封裝和構造方法)

java 中物件的 一對一關係 簡單介紹: … java中物件的對應關係有很多種,比如單向一對一,雙向一對一,一對多,多對一,多對多等,其實現原理相同,接下來,我們詳解一對一關係。 說明: … 所

java關係操作符==和equals()區別

    在java中包含的關係操作符有小於(<)、大於(>)、小於或等於(<=)、大於或等於(>=)、等於(==)以及不等於(!=)。 物件的等價性:     ==和!=適用所有物件,但是這兩個操作符通常在比較物件的時候會出問題,下面一個列子:

javaList、Set、Map之間的關係

java中關於實現陣列有許多種方法,諸如ArrayList,Hashmap,Linklist....此類太多的陣列型別實在是讓人暈頭轉向,很難掌握其要點.今天我就帶大家來整理一下List,set,map之間的區別和聯絡: 首先說明一下他們之間所有的所屬關係: 1.Collection介

java父類與子類的關係以及使用

在java中規定:一個父類可以有多個子類,但是一個子類只能有一個父類。子類可以通過extends關鍵字來繼承父類。做個比較通俗的比喻,就像一個父親可以有多個親孩子,但是一個孩子只能有一個親生父親。1.繼承以及重寫:子類繼承父類是對父類屬性和方法的全面繼承,同時子類在繼承了父類

Java靜態內部類與外部類關係說明

    先貼程式碼:public class AccessStaticInnerClass {private int prop1=1;private static int prop2=2;static class StaticInnerClass{private static

淺談JavaCollection、Iterable、List、ArrayList間的關係

        Java是一個高階語言,它提供了很多現成的資料結構,給我們的程式設計帶來了極大的遍歷。這都是由Java程式設計的高手給出的,學習這裡面的實現方式無論是對於我們使用這些工具還是對於掌握Java的程式設計之道都是很有幫助的。本文主要講述Java中的表的實現方式。

Java堆與棧的關係

資料型別     Java虛擬機器中,資料型別可以分為兩類:基本型別和引用型別。基本型別的變數儲存原始值,即:他代表的值就是數值本身;而引用型別的變數儲存引用值。“引用值”代表了某個物件的引用,而不是物件本身,物件本身存放在這個引用值所表示的地址的位置。 基本型別包括:byte,short,int,long

讓你更容易理解java類之間的6種關係

繼承關係 繼承關係包括子類和父類、子介面和父介面之間兩種繼承關係。用空心三角形和實線表示這種繼承關係。 實現關係 類和介面之間的關係,用空心三角形和虛線表示。 依賴關係 依賴關係:A類會用到B類,這種關係具有偶然性,臨時性。但B類的變化

java載入及方法、內部類與成員的呼叫關係

/* *該例程測試了程式在最開始時的載入情況及成員的呼叫情況,載入順序為類→靜態成員→建立物件( *如果建立的話)。 *注意,載入類時,靜態成員是單獨載入到一處static程式碼塊中,後續將不再載入。因此使用效率 *也更高一些。其中,非靜態內部類和靜態內部類在最初均不載入,

幫你理清Java字元與位元組的編碼關係

    首先,java中的一個char是2個位元組。java採用unicode,2個位元組來表示一個字元,這點與C語言中不同,C語言中採用ASCII,在大多數系統中,一個char通常佔1個位元組,