関係を実現し、その後継者を見てください:
公共の整数インクルードは、Number最終的なクラスを実装同等<整数>を拡張
次のように番号が特定のコードの種類を変換するために使用された6つの抽象メソッドについてを含む、抽象クラスである:
パブリック抽象クラス数実装たjava.io.Serializable {
パブリック抽象INT intValue();
でパブリック抽象ロングのlongValue();
抽象公衆; Oフロート()に従ってFloatValue
;ダブル()内のパブリック抽象のdoubleValueを
公共のバイト0の対応するByteValue(){
リターン(バイト)intValue();
}
公共ショート対応するShortValue(){
リターン(ショート)intValue();
}
/ ** JDK 1.0からのserialVersionUIDを使用* 0.2 /相互運用性のための
プライベートロングのserialVersionUID =最終的な静的-8742448824652078965L;
}
これはチェンHouziクラスの強力なターン後に達成されます。
パブリック(http://www.amjmh.com)における長のlongValue {
リターン(長い)値;
}
同等のインターフェースの外観は、唯一のcompareToメソッドのサイズを比較する:
公共のintのcompareTo(T O);
整数特定見える
公共のintのcompareTo(整数anotherInteger){
リターン(this.value、anotherInteger.value)の比較;
}
公共のint静的比較します(int型X、Yのint){
リターン(X <Y)-1:((X == Y)0:?。1);?
}
あなたはコードビットで激しい見れば、次のコードをコピーし、その実行結果を理解するために見A。
Testクラス{公共
のpublic static無効メイン(文字列[] args){
整数IT1 = 128;
整数IT2 = -128;
整数IT3 = 128;
のSystem.out.println(it2.compareTo(IT1)+「----- X <Y ");
のSystem.out.println(it1.compareTo(IT2)+" ------ X> Y「)。
System.out.println(Integer.compare(IT1、IT3)+ "----- X == Y")。
}
}
印刷結果:
-1 ----- X <Y
。1 ------ X> Y
0 X == Y -----
2.整数のキャッシュの問題
整数デフォルトはキャッシュ間隔-128〜127に配置されます。しかし、最大のキャッシュ値を手動で調整することができ、以下を参照してください。
AutoBoxCacheMax =サイズ:Javadocコメントは明らかに、このクラスがキャッシュにあり、127の高い値は、VM引数-XXを使用して変更することができる128と127の間の値のオートボクシングをサポートすることを述べています。だから、キャッシングは、forループで起こります。それはちょうどローからハイに実行され、整数配列名前付きキャッシュ内の整数インスタンスの格納など、多くを作成します。そのような単純な。このキャッシュは、Integerクラスの最初の使用でやっています。今後、これらのキャッシュされたインスタンスは(オートボクシング中に)代わりに新しいインスタンスを作成するのに使用されます。
結果を確認するために、次のコードを実行する:
パブリッククラスIntegerTest {
パブリック静的無効メイン(文字列[] args){
= 2008の整数IT1;
= 2008の整数IT2;
のSystem.out.println(IT1 == IT2); //真注:なぜそれの127の上には本当でしたか?私が設定されているためVM引数は、パラメータは、-XX:AutoBoxCacheMax = 2008
整数it1t = 2009;
整数it2t = 2009;
System.out.printlnは(it1t == it2t); // false説明:以上の2008偽、右~~
整数= newit1整数新しい(127)新;
整数= newit2新しい新しい整数(127);
System.out.printlnは(newit1 == newit2); // false説明する:新しい単語は、ヒープ内の新しいオブジェクトによって占有され、独立したメモリです
int型IT3 = 127;
int型; = 127 IT4
int型IT5 = 2008;
System.out.printlnは(== IT4 IT3); // trueに
するSystem.out.println(IT1 == IT5); // trueに
}
}
印刷結果:
trueに
偽
偽
真に
trueに
設定し、仮想マシンの起動パラメータ
---------------------