icon
icon

Javaにおけるint型とInteger型の違いを現役エンジニアが解説【初心者向け】

初心者向けにJavaでint型とInteger型の違いについて解説しています。これらはどちらも整数の変数型ですが、その性質についていくつかの違いがあります。int型とInteger型、それぞれの特徴について学びましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Javaにおけるint型とInteger型の違いについて、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

1時間でできる無料体験!

そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

int型とInteger型の違いについて詳しく説明していくね!

大石ゆかり

お願いします!

 

int型とは

int型とは、-2147483648~2147483647の範囲にある整数値を保持するための32ビットの変数型です。

int型は「プリミティブ型」と呼ばれる部類に属す変数です。

プリミティブというのは英語で「原始の」、「初期の原始の」、「初期の」といった意味を持つ単語で、”primitive”とつづります。

Javaで使用される変数は「プリミティブ型」以外には、「クラス型」と呼ばれるものがあります。

さらに詳しいint型の解説はこちらをご覧ください。

 

Integer型とは

Integer型とは、int型と同じように2147483648~2147483647の範囲にある整数値を保持する変数型です。

しかし、Integer型はint型とは異なる「クラス型」と呼ばれる部類の変数型です。

値だけを持つ「プリミティブ型」の変数であったint型をより便利にした変数型であり、int型をメソッドとして使用できるラッパークラスと呼ばれることもあります。

 

[PR] Javaプログラミングで挫折しない学習方法を動画で公開中

int型とInteger型の違い

int型とInteger型の変数型の違いについて、見ていきましょう。

int型は「プリミティブ型」と呼ばれる変数型で、Integer型は「クラス型」と呼ばれる変数型です。

int型のようなプリミティブ型変数は、簡潔にいってしまえば、「値だけを持った変数型」のことです。

値だけを持った変数は、整数値だけを持っており、それ以外に何も保持していません。

変数は実際に整数だけでなく、実際にInteger型などの「クラス型」は「メソッド」と呼ばれる便利な関数を持っています。

例えば、”10″などのString型変数をint型に変更したい場合には、Integer型のparseIntメソッドを使って、次のように表すことが可能です。

int 変数名 = Integer.parseInt(文字列);

 

また、次のコードのように、String型からint型に直接変換しようとすると、以下のようにエラーが生じます。

String str = "10";
System.out.println(str);
int i = (int)str;

実行結果

エラー: 不適合な型: Stringをintに変換できません:

 

また、int型はnullを代入できないのに対し、int型を拡張したInteger型にはnullを代入することが可能です。

この他にもint型には制限があるのに対し、Integer型にはできることが多くあるので便利な変数型といえるでしょう。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

int型とInteger型の使い方

int型変数を使う場合は、次のように記述しましょう。

int i = 整数値;

 

Integer型変数を使う場合は、クラスを扱う場合と同様に、次のように記述してください。

Integer number = new Integer(整数値)

 

また、Integer型からint型に変換したい場合には、次のように記述してみましょう。

number.intValue()

 

int型からInteger型に変換したい場合には、次のように記述します。

Integer number = new Integer(i)

もしくは、以下のようにInteger型のオートボクシングと呼ばれる機能を利用して、そのままiを代入すれば変換可能です。

Integer number = i

 

Integer型が保持する整数値を比較したい場合は、equalsメソッドを使用してみましょう。

例えば、number1とnumber2という2つのInteger型変数があるとすると、以下の記述では比較できません。

number1 == number2

比較するためには、次のように記述します。

number1.equals(number2)

これは、Integer型が単なる値ではなく、オブジェクトとしての変数であることが原因です。

 

加えて、異なる方法で値を比較したい場合、以下の記述では比較できません。

number1 > number2

下記のように記述します。

number1.compareTo(number2)

このメソッドは、それぞれ下記の値を返します。

number1 > number2 ならば1

number1 = number2 ならば0

number1 < number2 ならば-1

 

実際に書いてみよう

実際にInteger型を使ったコードを書いてみましょう。

今回は、乱数をInteger型で2つ用意して、compareToメソッドを使って大小関係に応じて出力する文字が変わるプログラムを作ります。

 

以下がプログラムコードです。

import java.util.Random;//乱数生成用のクラスをインポート

public class Sample{
        public static void main(String[] args){

        Random rnd = new Random();//乱数生成用のクラスを用意

        Integer integer1 = rnd.nextInt(11);//乱数の生成

        Integer integer2 = rnd.nextInt(11);//乱数の生成
 
        switch(integer1.compareTo(integer2)){
                 case 1://integer1がinteger2より大きい場合
                         System.out.println(integer1 + ">" + integer2);
                         break;
                 case 0://integer1がinteger2と等しい場合
                         System.out.println(integer1 + "=" + integer2);
                         break;
                 case -1://integer1がinteger2より小さい場合
                         System.out.println(integer1 + "<" + integer2);
                         break;
                 }
         }
}

 

1時間でできる無料体験!

まとめ

今回のポイントは、以下の3つです。

  • int型は「プリミティブ型」で、Integer型は「クラス型」
  • 「クラス型」であるInteger型にはメソッドなどの便利機能が豊富
  • Integer型の変数を比較するときは、equalsメソッドやcompareToメソッドを使う

 

以上、Javaにおける整数を格納するための変数型であるint型とInteger型について解説しました。

整数以外にも、浮動小数点数など他の変数にも同じような型があるのため、理解しておくと後々役に立つでしょう。

 

執筆してくれたメンター

mentor-k

独立系SIerに入社してシステム開発を主に従事。

フルスタックエンジニアとしてJava, C#, Python, HTML/CSS, JavaScriptなど多言語に対応しつつ、AWSやAzureなどインフラ周りまで幅広く行っている。

現在はPMとしてプロジェクト管理からお客様との要件検討など上流工程までカバー。

テックアカデミーではJavaコース、WordPressコースを担当。

初心者でも分かりやすい説明を心掛けております。

 

大石ゆかり

Javaにおけるint型とInteger型の違いについて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

Javaを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのJavaコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaやServletの技術を使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する