2023年07月30日 09時30分 公開
特集/連載

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

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

[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 マーケティング新着記事

news046.png

B2Bマーケティング支援のFLUED、国内のEC/D2C企業20万社のデータベース「StoreLeads」を提供開始
B2Bマーケティング・営業DXを支援するFLUEDは、カナダのLochside Softwareが提供するECサ...

news054.jpg

サブスク動画配信サービスの市場規模が5000億円超え 最もシェアを伸ばしたサービスは?――GEM Partners調査
定額制動画配信サービスの市場規模は2020年以降、堅調に拡大しています。ただし、成長率...

news044.jpg

ビルコム、PR効果測定ツール「PR Analyzer」に海外ニュースのクリッピング機能を追加
ビルコムは、クラウド型PR効果測定ツール「PR Analyzer」に新機能「海外メディアクリッピ...