ホームページ >Java >&#&チュートリアル >Javaのintとintegerの違いは何ですか?
#Java における int と integer の違い
●Int は基本的なデータ型であり、int 変数は数値。;Integer は参照データ型であり、実際にはオブジェクトです。Integer には、参照オブジェクトのアドレスが格納されます。 #●int のデフォルト値は 0、Integer のデフォルト値は null;
#●int 型は値を直接格納し、Integer はオブジェクトをインスタンス化する必要があります。そしてオブジェクトのアドレスを指します。 [推奨学習:Java ビデオ チュートリアル
]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 サイトの他の関連記事を参照してください。