int と Integer の違い

angryTom
リリース: 2020-02-17 13:49:41
オリジナル
31176 人が閲覧しました

int と Integer の違い

int と Integer の違い

1. Integer は int のラッパー クラスであり、int は Java の基本データ型です

2. 整数変数は使用する前にインスタンス化する必要がありますが、int 変数はインスタンス化する必要はありません。

3. 整数は実際にはオブジェクトへの参照です。新しい整数が作成されると、ポインターが作成されます。実際には、このオブジェクトを指すように生成されます。; 一方、int はデータ値を直接格納します

4. Integer のデフォルト値は null で、int のデフォルト値は 0

推奨される学習: java チュートリアル

拡張機能:

Integer と int の比較

1. Integer 変数は実際にはへの参照であるため、 Integer オブジェクトの場合、new Integer 変数によって生成される 2 つは常に等しくありません (new は異なるメモリ アドレスを持つ 2 つのオブジェクトを生成するため)。

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false
ログイン後にコピー

2. Integer 変数と int 変数を比較する場合、2 つの変数の値が等しい限り、結果は true になります (パッケージング クラス Integer と基本データを比較するときのため) int 型の場合、java は自動的に int を解凍し、実際の比較は 2 つの int 変数の比較になります)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true
ログイン後にコピー

3. 非 new によって生成された Integer 変数が new Integer によって生成された変数と比較される場合() の場合、結果は false になります。 (non-new によって生成された Integer 変数は Java 定数プール内のオブジェクトを指し、new Integer() によって生成された変数はヒープ内に新しく作成されたオブジェクトを指すため、この 2 つはメモリ内で異なるアドレスを持ちます)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false
ログイン後にコピー

4 . 新しく生成された 2 つの Integer オブジェクトではない場合、比較する場合、2 つの変数の値が -128 から 127 の間にある場合、比較結果は true になります。この範囲内にない場合、比較結果は false です

Integer i = 100;Integer j = 100;
System.out.print(i == j); //trueInteger i = 128;
Integer j = 128;
System.out.print(i == j); //false
ログイン後にコピー

項目 4 の理由:
Java が Integer i = 100; をコンパイルすると、Integer i = Integer.valueOf(100) に変換されます。 ;、および Java API の整数型 valueOf の定義は次のとおりです:

public static Integer valueOf(int i){
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high){
        return IntegerCache.cache[i + (-IntegerCache.low)];
    }
    return new Integer(i);
}
ログイン後にコピー

java は -128 から 127 までの数値をキャッシュします。整数 i = 127 の場合、127 がキャッシュされます。次回は整数 j = 127 が書き込まれます。そのときは、キャッシュから直接取得され、新しいものではありません。

詳細については、プログラミング学習コースをご覧ください。 PHP中国語ウェブサイトへ!

以上がint と Integer の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート