ハッシュコードとObject.ToStringを()は、単に理解

ハッシュコードとデフォルトの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れます }         
 

 

おすすめ

転載: www.cnblogs.com/mike-JP/p/10960129.html