Javaの「int」と「Integer」の違いって結局何? ざっくり比較するJavaの「int」「Integer」を比較【第2回】

「int」と「Integer」は、どちらも「Java」で整数を扱うための仕組みであることに違いはない。では何が違うのか。両者の基本的な要素を比較する。

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

 プログラミング言語・実行環境の「Java」で整数を扱う際、開発者は整数を扱う際に「int」と「Integer」という2つの仕組みを利用できる。両者は何がどのように違うのか。それを理解するために、まずは仕様上の違いを見ていこう。

「int」と「Integer」をざっくりと比較 両者の違いは?

 intとIntegerの主な違いは、intが「プリミティブ型」、Integerが「クラス」であることだ。プリミティブ型は、Javaが標準で用意する8つの型(数値や文字列といったデータの種類)。クラスは、フィールド(データ)とメソッド(処理)をまとめたオブジェクトの設計図を指す。オブジェクトとしてプリミティブ型を利用可能にするクラスを「ラッパークラス」と呼び、Integerはintに対するラッパークラスという位置付けになる。

 プリミティブ型とクラスの違いが、intとIntegerのさまざまな違いを生む。クラスであるIntegerしか持たない主な要素は、以下の通りだ。

  • フィールド
    • Integerは5種類のフィールドを持つ。
  • コンストラクタ
    • クラスからオブジェクトを生成する際に自動実行するメソッド。Integerは2種類のコンストラクタを持つ。
  • 静的メソッド
    • オブジェクトではなくクラスにひも付いたメソッド。オブジェクトを生成しなくても呼び出すことができる。Integerは30種類以上の静的メソッドを持つ。
  • インスタンスメソッド
    • クラスではなくオブジェクトにひも付いたメソッド。オブジェクトを生成しないと呼び出すことができない。Integerは10種類以上のインスタンスメソッドを持つ。

 intの変数同士の比較には等価演算子(==)を使用し、Integerのオブジェクト同士の比較にはメソッド「equals」を使用する。intの変数よりもIntegerのオブジェクトの方が、メモリの消費量が多くなりやすい。


 次回は、実際のソースコードに沿ってintとIntegerの違いを解説する。

関連キーワード

Java | プログラミング


TechTarget発 エンジニア虎の巻

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

Copyright © ITmedia, Inc. All Rights Reserved.

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

news132.jpg

ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。

news103.jpg

なぜ料理の失敗写真がパッケージに? クノールが展開する「ジレニアル世代」向けキャンペーンの真意
調味料ブランドのKnorr(クノール)は季節限定のホリデーマーケティングキャンペーン「#E...

news160.jpg

業界トップランナーが語る「イベントDX」 リアルもオンラインも、もっと変われる
コロナ禍を経て、イベントの在り方は大きく変わった。データを駆使してイベントの体験価...