Knowledge Log

【Java】どれを使えばいい?整数型(byte/short/int/long)の違いを徹底解説

denson
1

はじめに

みなさんどうも、おげんです。

以前の記事では、Javaの基本となる「4つのデータ型」についてお話ししました。

その中で、整数を扱うときは int を使うと解説しましたが、実はJavaの世界には、整数を入れるための箱が他にも3つ(合計4つ)存在します

「えっ、数字を入れるだけなのに、なんでそんなに種類があるの?」

「intだけじゃダメなの?」

勉強を始めたばかりの頃の私は、そう思って混乱してしまいました(笑)。

結論から言うと、これらは「入れる数字の大きさに合わせた、サイズの違う箱」なんです。

今回は、そんな整数型4兄弟(byte, short, int, long)の違いと、「結局どれを使えばいいの?」という疑問を、図解を使ってスッキリ解決していきたいと思います!

この記事におすすめの人
  • int以外にも型があることを知って混乱している人
  • longを使うときにLをつける理由が知りたい人
  • 「基本データ型」の整理したい人
2

同じ「整数」でも箱のサイズが違う?

後に記述しますが、long型が一番大きな整数型です。

「全部一番大きな long に入れておけば、入りきらない心配がなくて安心じゃない?」

勉強を始めたばかりの頃、私はそう思っていました。でも、Javaではあえて箱のサイズを使い分けます。

なぜなら、コンピュータの「作業スペース(メモリ)」には限りがあるからです。

3

整数型4兄弟をイメージで理解しよう!

4種類の型を、新生活で使う「収納ボックス」のサイズに例えてみました。

※実際には1単位まで細かく決まっていますが、まずはイメージを掴んでもらうために「ざっくりとした数字」で紹介しますね!

表だけではわかりづらいと思うので、具体例を用いて考えてみましょう。

もったいない「スペースの無駄遣い」

例えば、あなたが新居に「ペン1本」だけを運びたいとします。

  • int / byte: 手持ちの小さなカバンや小箱に入れる(効率的!)
  • long: バカでかい「大型コンテナ」を1台チャーターして、その中にポツンとペンを入れる(スペースの無駄遣い!

ペン1本運ぶために大型コンテナを使っていたら、他の大事な荷物を積む場所がなくなってしまいますよね。

コンピュータもこれと同じです。 どんなに小さな数字でも、常に一番大きな long の箱を使っていると、コンピュータのメモリがすぐにいっぱいになってしまい、全体の動作が重くなってしまうんです。

「中身に対して、大きすぎず小さすぎない、ピッタリな箱を選ぶこと」

これが、効率よく動くプログラムを作るための大切なマナーなんです。

補足:正確な整数型4兄弟の範囲

「1単位まで決まってるって書いてたけど、正確にはどうなの?」と気になる方のために、一覧表を用意しました。今は「右に行くほど箱が大きくなるんだな」という眺め方でOKです!

いきなりこの細かい数字を暗記するのは難しいと思います。

大切なのは数字を覚えることではなく、「箱(型)にはそれぞれ、物理的な限界があるんだ」ということを知っておくことです。

それさえ分かっていれば、もしエラーが出たときも「あ、箱が小さすぎたかな?」と自分で気づけるようになりますよ!

4

なぜ「int」が選ばれるのか?

Javaの世界ではint型が標準として使われており、それには理由があります。

  • バランスの良さ: 21億という数字は、日常生活のほとんどの計算(年齢、個数、金額など)に十分なサイズです。
  • コンピュータの得意分野: 今のコンピュータは int のサイズを処理するのが一番得意で、効率が良いと言われています。

int型が扱えきれない21億を超えるような「国家予算」や「天文学的な数字」を扱うときだけ、最強の long 型を召喚するイメージです。

5

書き方の注意点(longにはLを!)

ここがJavaのちょっと面白いルールです。

long を使うときは、数字の最後に「これは特大サイズだよ!」と教えるために L をつけます。

long population = 8000000000L; // 数字の最後にLをつける

なぜ最後に「L」が必要なの?

一言でいうと、「Javaは数字を書き始めた瞬間、とりあえず『int(標準サイズ)』だと思い込んでしまうから」です。

Javaにはこんなクセがあります。

  1. あなたがコードに 8000000000(80億)と書く。
  2. Javaはそれを見た瞬間、「あ、数字だ!よし、標準サイズのintの箱(21億まで)に入れよう!」と勝手に判断します。
  3. でも、80億は int の箱には入り切りません。
  4. そこでJavaはパニックになり、「これ、intの箱から溢れてるよ!」とエラーを出してしまいます。

これを防ぐために、「これは最初から特大サイズ(long)として扱ってね!」という合図を送る必要があります。それが数字の最後につける L なんです。

また、小文字の l だと数字の 1 と見間違えやすいので、大文字の L を使うのがエンジニアの鉄則です!

Lをつける=「予約票」を貼るイメージ

引っ越しで例えるなら、「荷物の外側に『特大サイズ・コンテナ行き』というラベルを貼っておく」ようなものです。

  • ラベル(L)なし: 作業員(Java)が勝手に「これは普通の段ボール(int)でいけるな」と判断して、後で入らなくて困る。
  • ラベル(L)あり: 最初から「あ、これは特大サイズか。大きなトラック(long)を準備しよう」とスムーズに動ける。

この「L」は、Javaに対して「勝手にintだと決めつけないで!」と念押しするための合図なんですね。

6

まとめ:迷ったらまずは「int」

今回は整数の4つの型について解説しました。

  • 基本は int を使う
  • 21億を超えるときだけ long を使う(最後に L を忘れずに!)
  • byteやshortは、メモリを極限まで節約したいプロが使うもの(今は知っておくだけでOK!)

最初は「4つも覚えられない!」と思うかもしれませんが、まずは「基本はint、たまにlong」というルールだけ覚えておけば大丈夫です。

一歩ずつ、最適な箱を選べるようになっていきましょう!

あわせて読みたい
【Java】データの種類を決める「型」とは?代表的な4つを分かりやすく解説
【Java】データの種類を決める「型」とは?代表的な4つを分かりやすく解説
【Java】小数型「float」と「double」の違いをいっぽずつ解説
【Java】小数型「float」と「double」の違いをいっぽずつ解説
【Java】文字型(char)と文字列(String)の違いを解説!使い分けのコツとは?
【Java】文字型(char)と文字列(String)の違いを解説!使い分けのコツとは?
【Java】真偽値(boolean)とは?プログラミングの「分かれ道」をいっぽずつ理解しよう
【Java】真偽値(boolean)とは?プログラミングの「分かれ道」をいっぽずつ理解しよう

ABOUT ME
おげん
おげん
駆け出しエンジニア
文系未経験からエンジニアになるために挑戦を開始したアラサー。転職活動を終え、2026年4月からIT企業で勤務予定。自分が学習で苦労した経験を『誰かのための道しるべ』として発信中。
記事URLをコピーしました