Javaのintとintegerの違いは何ですか?

青灯夜游
リリース: 2019-12-26 16:26:46
オリジナル
3986 人が閲覧しました

#Java における int と integer の違い

●Int は基本的なデータ型であり、int 変数は数値。;Integer は参照データ型であり、実際にはオブジェクトです。Integer には、参照オブジェクト

のアドレスが格納されます。 #●int のデフォルト値は 0、Integer のデフォルト値は null;

#●int 型は値を直接格納し、Integer はオブジェクトをインスタンス化する必要があります。そしてオブジェクトのアドレスを指します。

[推奨学習:

Java ビデオ チュートリアル

]

int と Integer が占有するメモリの比較:

Integer オブジェクトより多くのメモリを占有します。 Integer はオブジェクトであり、オブジェクトのメタデータを保存する必要があります。ただし、int はプリミティブ型のデータであるため、必要なスペースは少なくなります。

non-new によって生成された Integer 変数は、new Integer() によって生成された変数と比較され、結果は false になります。

/**
 * 比较非new生成的Integer变量与new生成的Integer变量
 */public class Test {
    public static void main(String[] args) {
        Integer i= new Integer(200);
        Integer j = 200;
        System.out.print(i == j);        //输出:false
    }
}
ログイン後にコピー
non-new によって生成された Integer 変数は Java 定数プール内のオブジェクトを指しますが、new Integer() によって生成された変数はヒープ内に新しく作成されたオブジェクトを指すため、アドレス二人の記憶は違う。。したがって、出力は false になります。

新しく生成されていない 2 つの Integer オブジェクトを比較する

2 つの変数の値が間隔 [-128,127] の間にある場合、比較結果は true になります。それ以外の場合、結果は false になります。

/**
 * 比较两个非new生成的Integer变量
 */public class Test {
    public static void main(String[] args) {
        Integer i1 = 127;
        Integer j1 = 127;
        System.out.println(i1 == j1);//输出:true
        Integer i2 = 128;
        Integer j2 = 128;
        System.out.println(i2 == j2);//输出:false
    }
}
ログイン後にコピー

Java が Integer i1 = 127 をコンパイルすると、Integer i1 = Integer.valueOf(127) に変換されます。

整数変数 (新規で生成されたかどうかに関係なく) は int 変数と比較されます

2 つの変数の値が等しい限り、結果は次のようになります。真実。

/**
 * 比较Integer变量与int变量
 */public class Test {
    public static void main(String[] args) {
        Integer i1 = 200;
        Integer i2 = new Integer(200);        int j = 200;
        System.out.println(i1 == j);//输出:true
        System.out.println(i2 == j);//输出:true
    }
}
ログイン後にコピー

ラップされた整数変数が基本データ型の int 変数と比較されると、整数は自動的に int に解凍されて比較されます。実際には、2 つの int 変数が比較されます。値は次のとおりです。等しいので、それらは真実です。

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

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