見出し画像

Java : Integer型とint型の違い

※自分用学習メモです

まとめ

  • intはプリミティブな整数型で、数値の演算や効率的な処理に適しています。

  • Integerはintをオブジェクトとして扱えるラッパークラスで、nullやコレクションに使う場合に便利です。


1. int型とは

  • intはJavaのプリミティブ(基本)データ型です。

  • 32ビットの整数値を扱うために使われ、メモリ効率が良いです。

  • int型は直接数値を保持し、演算が高速に行えます。

  • 例:

int num = 10;

2. Integer型とは

  • IntegerはJavaの**ラッパークラス(Wrapper Class)**で、int型のオブジェクトを扱うためのクラスです。

  • Integerはjava.langパッケージに含まれるクラスで、intの値をオブジェクトとして扱うことができます。

  • nullを使えるため、オブジェクトとして扱うコレクション(ArrayListなど)に格納したり、メソッドの引数や戻り値として使いやすくなっています。

  • 例:

Integer numObj = 10;

3. int型とInteger型の主な違い


4. intとIntegerの相互変換(オートボクシングとアンボクシング)

Javaには、int型とInteger型の自動変換機能(オートボクシングとアンボクシング)があり、通常の使い方では違いをあまり意識する必要がありません。

  • オートボクシング:int → Integerへの自動変換

int num = 10;
Integer numObj = num;  // intからIntegerへの自動変換
  • アンボクシング:Integer → intへの自動変換

Integer numObj = 20;
int num = numObj;  // Integerからintへの自動変換

5. Integerが必要な場面

  • コレクション(ArrayList, HashMapなど)を使うとき

ArrayList<Integer> list = new ArrayList<>();
list.add(10); // int型の10はInteger型にオートボクシングされる
  • nullを扱いたいとき(intはnullを扱えないため)

Integer num = null;  // OK
int value = null;    // コンパイルエラー

6. 注意点

  • nullの扱いに注意:Integerがnullの場合にアンボクシングしようとするとNullPointerExceptionが発生します。

Integer numObj = null;
int num = numObj;  // ここでNullPointerExceptionが発生

この記事が気に入ったらサポートをしてみませんか?