Javaの「int」「Integer」をソースコードで比較 「初期化」の違いとは?Javaの「int」「Integer」を比較【第3回】

「int」「Integer」は、どちらも「Java」で整数を扱うための仕組みだ。「初期化」における両者の違いを、実際のソースコードを交えて解説する。

2023年07月30日 09時30分 公開
[Cameron McKenzieTechTarget]

 プログラミング言語・実行環境の「Java」のプログラムで整数を扱うには、「int」または「Integer」のいずれかの仕組みを使うことになる。intは「型」(数値や文字列といったデータの種類)、Integerは「クラス」(データと処理をまとめたオブジェクトの設計図)という定義上の違いはあるものの、これだけでは何が違うのかをイメージしにくい。ソースコードを見れば、両者の違いをより理解しやすくなる。

intとIntegerの「初期化」の違いをソースで比較

 変数やオブジェクトを利用する際は、初期化という作業が必要になる。intの変数を初期化する方法は、変数を宣言して代入することしかない。ソースコード例は以下の通りだ。

int kilo = 1000; // intの変数「kilo」を宣言し、数値「1000」を代入することで初期化する。

 Integerのオブジェクトは、以下に示す3つの手段で初期化できる。

valueOf

 「valueOf」は、文字列を数値に変換するメソッド(オブジェクトにおける処理)だ。valueOfを使った初期化の例を以下に示す。

Integer dozen = Integer.valueOf("20"); // Integerのオブジェクト「dozen」を宣言し、valueOfを使って文字列「20」を数値に変換することで初期化する。

オートボクシング

 「プリミティブ型」(Javaが標準で用意する8つの型)の変数を、対応する「ラッパークラス」(オブジェクトとしてプリミティブ型を利用可能にするクラス)のオブジェクトに自動的に変換する機能を「オートボクシング」と呼ぶ。オートボクシングを使った初期化の例は以下の通りだ。

Integer century = 100; // Integerのオブジェクト「century」を宣言し、オートボクシングを使って数値「100」を代入することで初期化する。

コンストラクタ

 「コンストラクタ」は、演算子「new」を使ってクラスからオブジェクトを生成する際に、自動的に呼び出すメソッドを指す。コンストラクタを使った初期化は以下のようになる。

Integer number = new Integer(10); // Integerのオブジェクト「number」を宣言し、コンストラクタを使って引数「10」を初期値にして初期化する。

 次回は処理負荷の視点から、intとIntegerを比較する。

関連キーワード

Java | プログラミング


TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news061.png

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

news193.jpg

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

news047.png

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...