シリアル57-イコール、ファイナライズメソッド、hashCodeメソッドを書き換えるJAVA

私は、Java言語で、どのように2つの文字列が同じかどうかを比較します

1.二重等号が2つの文字列が等しいかどうか比較するために使用することができない、例のように、equalsメソッドを使用して比較されるべきです

 

パッケージはcom.bjpowernode.java_learning、


パブリック クラスD57_1_ { 

  公共 静的 ボイドメイン(文字列[]引数){ 

    ストリングS1 = 新しい新しい文字列( "ABC" ); 

    ストリングS2は = 新しい新しい文字列( "ABC"を

    するSystem.out.println (S1 == S2); // 二つのオブジェクトの比較は、オブジェクトがアドレス比較であるためfalseに、これは

    のSystem.out.println(s1.equals(S2)); // 文字列ISを比較する方法に等しくその値

   

  } 

}

クラスではなく、クラスアクション元アドレス比較を使用するよりも、内部的に一貫決意ターゲット効果に等しい場合書き換え2を達成することができます

 

パッケージcom.bjpowernode.java_learning; 


パブリック クラスD56_2_equalsMethodAnalysis { 

  公共 静的 ボイドメイン(文字列[]引数){ 

    オブジェクトO1 = 新しいオブジェクト(); 

    オブジェクトO2 = 新しいオブジェクト(); 

    ブール値 B1 = o1.equals(O2)

    System.out.println(B1)。

    Star56 S1 = 新しい Star56(100、 "暁明" ); 

    Star56 S2 = 新しい Star56(100、 "暁明" ); 

    System.out.println(s1.equals(S2))。

    //比較は二つのオブジェクトのメモリアドレスがあるので、これは、より多くの偽の外にあるが、これは我々の期待に沿ったもので、明らかではありません

    //が、我々は一貫していないオブジェクトの内容を比較したいということです。私たちは、書き換えるよう

   

  } 

} 

クラスStar56 { 

  int型のIDを、

  文字列名; 

  公共 Star56(int型のID、文字列名){ 

    この .ID = ID; 

    この .nameの= 名; 

  } 

  パブリック ブールのequals(オブジェクトobj){ 

    IFを(objをinstanceofは Star56){ // キャストが最初継承ある両方か否かを判断しなければならない

      Star56 S = (Star56)objは、

      IFが(== s.id この .ID && s.name.equals(これを.nameの)){ 

        戻り 

      } 

    } 

    を返す 

  } 

}

二、ファイナライズメソッド、hashCodeメソッド

各オブジェクトは、メソッドの1.finalizeのJavaを持っています

2.finalize方法は、システムによって呼び出され、コールにプログラマーを必要としません。

3.javaはそれをポイントへの参照がなくなった場合は、Javaオブジェクトがガベージデータ、ごみ収集のための待ち時間、自動的にJavaオブジェクトをリサイクルする前にオブジェクトを呼び出しますガベージコレクタのファイナライズ方法となっオブジェクト。

リソースを解放する必要性は、プロセスにリリースされることがあります。オブジェクトは、例えば、回収され、すぐにああ確定することです。

 

パッケージはcom.bjpowernode.java_learning、


パブリック クラスD57_2_MethodOfFinalize { 

  公共 静的 ボイドメイン(文字列[]引数){ 

    Person57 P1は = 新しい新しいPerson57を(); 

    P1 = NULL ; // それへの参照、回収されるのを待っている

    // プログラマ唯一のガベージコレクタのガベージ「お勧め」に

    は、System.gcを(); // これは、システムです

   

    // オブジェクトは、int型のハッシュアルゴリズムを使ってJavaのメモリアドレスを取得することです、使用hashCodeメソッドは、オブジェクトのハッシュ値を返します。値型

    Person57 P2 = 新しい新しいPerson57(); 

    のSystem.out.println(p2.hashCode()); 

   

    // 使用クローン()メソッドは、内容への損傷を防止するために、オブジェクトのコピー、元のオブジェクトであってもよいです

  }

} 

クラスPerson57 { 

  // 書き換えfianlizeメソッドオブジェクトメソッド

  公共 のボイド fianlize()スローのThrowable { //をソースコードが書かれていたため、一時的に、知らない、そう書かれた理由については、我々は、ライン上の関数本体を書き換えます

    System.out.println(これ +「すぐに回収される」); 

    //を容易にするために、オブジェクトがガベージコレクトされる、そのような基準を指定する再書かれたオブジェクトとしてファイナライズメソッドをオーバーライドすることができ

  } 

}

 

第三に、ソースコード:

D57_1_CompareString.java

D57_2_MethodOfFinalize.java

住所:

https://github.com/ruigege66/Java/blob/master/D57_1_CompareString.java

https://github.com/ruigege66/Java/blob/master/D57_2_MethodOfFinalize.java

2.CSDNます。https://blog.csdn.net/weixin_44630050(西6月6月ムードが知らない - ルイを)

3.パークブログます。https://www.cnblogs.com/ruigege0000/

4.歓迎マイクロチャンネル公衆数に焦点を当て:フーリエ変換材料を学ぶビッグデータを取得するために、唯一の交流を学ぶために、舞台裏の返信「贈り物」をパブリック個人番号を変換

 

 

おすすめ

転載: www.cnblogs.com/ruigege0000/p/11980490.html