ハッシュコードとデフォルトのtoString()は次のように要約Baiduは後に、理解していません。
ハッシュコード
Javaでは、ハッシュコードは、オブジェクトの特性を表すハッシュコードが等しい場合、例えば、我々は、文字列== 2か否かを決定する、2つの文字列が同じです。第二に、ハッシュコードは、アルゴリズムのデータ構造です。共通のハッシュコードアルゴリズムは、次のとおりです。
1:各オブジェクトのメモリアドレスが異なるので、ハッシュコードが同じではないので、ハッシュコードのオブジェクト・クラスは、処理後の構造を介してオブジェクトのメモリアドレスを返します。
2 :.ストリングクラスの文字列は、文字列クラスの内容が含まれているハッシュコード、特定のアルゴリズムによれば、同じハッシュコードが返される限り、コンテンツとしてのハッシュコード、同じ文字列を返します。
3:Integerクラスは、整数値は、ハッシュコードは、例えば、(100)、i1.hashCode値整数I1 =新しい整数は100で、Integerオブジェクトに含まれて戻りました。したがって、2つの同じサイズのIntegerオブジェクトと同一のハッシュコードを返します。
2つのオブジェクトのオブジェクトのデフォルトのtoString()
オブジェクトのインスタンスを直接出力、表示される文字列の束を表す場合は?
クラスは、文字列、整数などカバーのいくつかの種類であり、toString()メソッドを呼び出すクラスの直接出力オブジェクト。このメソッドをオーバーライドしない独自のクラスを記述し、その後、この方法では、実際の出力フォーマットオブジェクトのtoStringでのオブジェクトクラスの継承は、()メソッドは、そのようなはgetClass()です。関連項目GetName()で+ 「@」+ Integer.toHexString(のhashCode() )クラスのハッシュコード、このクラスあなたが欲しいの出力形式を印刷したい場合、あなたはこれを持って、toStringメソッドのカバレッジと背後にあります。
上記のセクションの抜粋は次のとおりです。https://zhidao.baidu.com/question/556180467.html https://zhidao.baidu.com/question/179265608.html
テスト:
---------------------
著者:秦秦Qinnengbuzhuo
出典:CSDN
オリジナルます。https://blog.csdn.net/zark721/article/details/70254548
著作権免責事項:この記事はブロガーのオリジナルの記事、再現され、ボーエンのリンクを添付してください!
1つの パッケージnew_start1。 2つの パブリック クラスTest1を{ 3 クラス人 4 { 5 公共の文字列名。 6 公共人(文字列N) 7 { 8 本 .nameの= N。 9 } 10 公衆人(){} 11 } 12 パブリック 静的 ボイド変化(人物A)// 改变对象的名值 13 { 14 a.name = "母" 。 15 } 16 パブリック 静的 ボイドメイン(文字列[]引数){ 17。 Test1を= T 新しい新規のTest1(); 18は、 人P = T。新しい新規人物( "zhangsan"); // オブジェクトPのインスタンス 19。 人物A = T. New新しい(人数); // オブジェクトの別のインスタンス 20である のSystem.out.printlnは( "未割り当ての前に、両方のハッシュコードが同じではありません:" ); 21れる のSystem.out.println( "a.hashCode =" + A .hashCode()+ "" + "p.hashCode =" + p.hashCode()); 22で のSystem.out.println( "a.toString()=" + a.toString()); 23である のSystem.out。 println(「P。toString()= "+p.toString()); 24 / * 25 未割り当ての前に、両方のハッシュコードが同じではありません: 26である a.hashCode p.hashCode = 1829164700 = 366 712 642 27 a.toString()=人@ $ new_start1.Test1 15db9742 28 p.toString()= new_start1.Test1$Person@6d06d69c 29 * / 30 = P; 31である のSystem.out.println( "割り当て後、両方が同じハッシュコードを持っている:" ); 32 のSystem.out。 println( "a.hashCode =" a.hashCode +()+ "" + "p.hashCode =" + p.hashCode()); 33である のSystem.out.println( "a.toString()=" + A. toString()); 34である のSystem.out.println(「P.toString()= "+ p.toString()); 35 / * 36 代入後は、両方が同じハッシュコードを有する: 37 [ a.hashCode = 1829164700 = 1829164700 p.hashCode 38は、 a.toString()= new_start1.Test1$Person@6d06d69c 39 P. toString()= new_start1.Test1$Person@6d06d69c 40 * / 41である } 42れます }