==とequalsメソッドの違いとの接続

1、==

(1)基本データ型:比較値が等しいかどうか

   int型、A = 1 ;
   INT B = 1 
   システム。アウト .println(== B)。

trueを返します。

(2)参照データ型は、比較は同じオブジェクトかどうかです。

        学生STUDENT1 = 新しい学生(" 201911 "" ZHAI " ); 
        学生student2 = 新しい学生(" 201912 "" " ); 
        システム。アウト .println(STUDENT1 == student2)。

リターンはfalse。

 

異なるオブジェクトの2つのオブジェクトの基準点。

 

        学生STUDENT1 = 新しい学生(" 201911 "" ZHAI " ); 
        学生student2 = 新しい学生(" 201912 "" " ); 
        システム。アウト .println(STUDENT1 == student2)。

trueを返します。

 

 

 

オブジェクト参照は異なっているが、彼らは同じオブジェクトを指しています。

2に等しい()メソッド

(1)に等しい()メソッドは、変数の基本データ型に適用することはできません

(2)に等しい()メソッドは、比較が同じオブジェクトであるかどうか、参照データ・タイプに適用されます。

ビューのソースコードにクラスObjectから継承されます。等しいです:

   パブリックブール等しい(オブジェクトobj){
         リターンこの == OBJ)。
    }

見て、その本質が使用することができるよう==比較データ型は、同じオブジェクトへの参照です。

(3)一部のクラスは、メソッドが(例えば:文字列クラス)書き直されまし等しいです。

ソースを表示Stringクラス:

パブリックブール等しい(オブジェクトanObject){
         場合この == anObject){
             戻り 
        } 
        場合(文字列のinstanceof anObject){ 
            文字列anotherString = (文字列)anObject。
            INT、N = value.length。
            もし(N == anotherString.value.length){
                 チャー V1 [] = 値。
                チャー V2 [] = anotherString.value。
                int型私は= 0を同時に(!N-- = 0 ){
                     場合(!V1 [I] = V2 [i])と
                         リターン 
                    I ++ ; 
                } 
                を返す 
            } 
        } 
        を返す 
    }

オブジェクトは同じオブジェクトであるか否かを、オブジェクトの値の比較。

        文字列の文字列1 = 新しい文字列(" jiayou " ); 
        文字列string2の = 新しい文字列(" jiayou " ); 
        システム。アウト .println(string1.equals(string2の)); // 真の 
        システム。アウト .println(文字列1 ==文字列); // 

二つのオブジェクトの値が同じであるが、2つのオブジェクトが同じオブジェクト(異なるアドレスのオブジェクト)ではないが、二つのオブジェクト、独自のオブジェクトへのオブジェクト参照点を作成したため。

(4)カスタムメソッドに等しく、比較対象値は等しいです。

パブリックブール等しい(オブジェクトobj){
         // 同じオブジェクトが直接である場合、現在のオブジェクトの転送を分析し、
        IFこの == 比較が同じオブジェクトであるか否かをOBJ){//参照データ型、
             リターン trueに; 
        } 
        // オブジェクトが車種に渡された判決がある場合は、直接渡す場合ではない
        のiF(!車のinstanceof(OBJ)){
             リターン ; 
        } 
        // 車両基準ダウンキャストobjをします、あなたは車固有のコンテンツにアクセスするか、のみ可能共通のコンテンツアクセス 
        車両V = (ビヒクル)OBJを、
         返す この .vType && == v.vType この .vNum == v.vNum; //基本データ型を、基本データ型の値を比較
    }

書き換えの方法を等しくした後に、オブジェクトが2つのオブジェクトを比較するためにequalsメソッドの機能は、オブジェクトの値が等しいかどうか同じになります。

 

おすすめ

転載: www.cnblogs.com/zhai1997/p/12398258.html
おすすめ