ロングカプセル化は、長い長い整数データ型です。私たちは、long int型は、データの表現範囲の相対的な差が拡大している他の機能のほとんどが同じであることを知っています。だから、ほとんどのメソッドを持つ長整数は同じです。
整数学習記事:https://www.cnblogs.com/coding-one/p/11387983.html
ここでの機能にいくつかの違いがあります:
1.キャッシュ機構
Integer型のように、長いも、キャッシュメカニズムを提供します。それは限り範囲より大きいint型、ロングレンジは整数キャッシュそれよりも大きくなければならないではないのですか?実際には、ありません。長いタイプと最大キャンセルキャッシュの構成は、キャッシュは直接、範囲[-128、127]を設定します。
プライベート 静的 クラスLongCache { プライベートLongCache(){} 静的最終長いキャッシュ[] = 新しいロング[ - ( - 128)+ 127 + 1 ]。 静的{ ため(int型 I = 0 iは++; iはcache.length < ) キャッシュ[I] = 新しいロング( - I 128 )。 } }
2.ハッシュコード()値
整数型のhashCode値は、それはそれは長い長い値に格納されているかどうか、int型の値を保存したことありますか?もちろん、答えはノーです。通常の慣例に従って、ハッシュコード値はint型であるため、長い不適切明確に入力し、その値がロング表すことができますint型の値を得るために処理します:
パブリック 静的 int型のハッシュコード(長い値){ リターン(INT)(値^(値>>> 32 ))。 }
図から分かるように、長い値はハッシュコードにして得られました:
右シフト32ビット単位2.1長いゼロパディング値、結果は、この時点で上位32ビットを取得し、すべて0、元の上位32ビットの下位32ビットです。
2.2。得られた結果は、このとき得られた値は、元の下位32ビットは、ハイとローの32ビットの32ビットXORに長い元の32ビット長の値と同じである2.1と長い値のビット単位の排他的論理和演算でした結果;
long intに強制的に得られた2.3 2.2結果の値。
上記のステップは、我々はハッシュを対応するハッシュ値を得ることができるように、高、低ビット単位のXORを残して、失われ、転送後に最も重要なビット単位のXORである、そして強いです。
私たちは例の縮小版を与える下:
表記:
1. 1バイト長型類推、半バイト(4ビット)、アナログ型int。
2.元のコード表記を使用。
3.無符号ビットありません。
目的:15より大きい数は(4ビットの最大値を表すことができる)(元のコードの符号なしの範囲を4ビットで表現することができる)の値の間[0、15]から計算されます。
例:248,43
1.上記の二つの符号なしの数字は、ソースコードのように表現:11111000,00101011
2. 4は、ゼロパディング権を得た:00001111,00000010
3.右フロントビット単位のXORを求める:11110111,00101001
得られた高を廃棄した後4:0111,1001
変換された値は次のとおりです。7,9
これは、元のコード表記で見ることができ、4ビットの元の使用は、目的が達成された、今ハッシュ値で4ビットで表現することができ、ビット単位の一連の動作を介して、二つの数字43および248のビットで表現できません。
注:上記の例は単純な類推され、コンピュータの計算は、実際の補数、およびバイト長、それぞれ、8バイト4バイトです。