目次
int と Integer
int
プリミティブ型(基本データ型)で、メモリ効率が良く、値そのものを直接保持する。
|
1 2 3 |
int x = 10; |
Integer
プリミティブ型をオブジェクトとして扱うためのラッパークラスです。java.lang.Integer クラスとして提供され、多くのユーティリティメソッドが利用可能です。
|
1 2 3 |
Integer y = 10; |
主な用途(使い分け)
- int
- Integer
オートボクシングとアンボクシング
Javaでは、int と Integer 間の変換が自動的に行われる機能があります。
- オートボクシング:
int→Integerに自動変換 - アンボクシング:
Integer→intに自動変換
|
1 2 3 4 5 |
int a = 5; Integer b = a; // オートボクシング int c = b; // アンボクシング |
パフォーマンス
- int:
- Integer:
nullの扱い
- int
- Integer
まとめ
| 特性 | int | Integer |
|---|---|---|
| 種類 | プリミティブ型 | ラッパークラス |
| メモリ効率 | 高い | 低い |
| 演算の速度 | 高速 | 比較的低速 |
| null の扱い | 不可 | 可能 |
| コレクションでの使用 | 不可 | 可能 |
| 主な用途 | 通常の数値演算、軽量処理 | コレクションやnullが必要な場面 |
基本的にはint を使うことが多いようです。
nullの代入を考慮する必要があったり、オブジェクト型としてしか使えない場合はInteger を使います。
補足
intを使うべきか、Integerを使うべきかは正直なところ宗教論争だと思っています。
開発者個人の考えや、会社やチームとしてのスタイルがあるのでどちらを優先的につかうべきかはプロジェクトによって異なります。
正しい・正しくないという議論よりも、コードの統一感を優先した方が良い場合が多いので、プロジェクトの方針があればそちらに従う方がベターです。

コメント