Java道|Javaのデータ型

データ型は、変数に入れる値の「型」。Javaの箱に何を入れるかを決めて、正しく扱う力を身につけよう

変数を学ぶと、Javaの中で値を一時的に記憶できることがわかってきます。けれども、変数は「何でも自由に入れられる万能の箱」ではありません。Javaでは、変数を使う前に、その変数へどのような種類の値を入れるのかを決めておく必要があります。

この「値の種類」を表すものが、データ型、または型です。

鬼殺隊の道具箱で考えると、薬を入れる箱、刀の手入れ道具を入れる箱、任務記録を入れる箱は、それぞれ役割が違います。薬箱に刀を入れたり、記録帳の棚に水筒を入れたりすると、管理がしにくくなります。Javaの変数も同じで、整数を入れる箱、小数を入れる箱、文字を入れる箱、true または false を入れる箱のように、入れられる値の種類が決まっています。

型を理解すると、変数のしくみがよりはっきり見えてきます。どの型なら整数を扱えるのか、どの型なら小数を扱えるのか、どの型なら1文字や真偽値を扱えるのか。この区別がわかると、Javaのコードを読む力も書く力も一段上がります。

ここでは、Javaの基本的なデータ型を、鬼滅の刃風の修行イメージに置き換えながら、やさしく整理していきます。型の意味、必要性、サイズ、値の範囲を中心に確認していきましょう。

型とは変数に入れる値の種類を決めるもの

型とは、変数にどのような種類の値を記憶させるのかを表すものです。

変数は値を入れる箱のように考えるとわかりやすいですが、その箱には「何を入れる箱なのか」という決まりがあります。整数を入れる箱、小数を入れる箱、文字を入れる箱、true または false を入れる箱のように、値の種類ごとに箱の性格が変わります。

鬼殺隊の任務でたとえるなら、型は道具箱の種類です。

鬼殺隊風の箱Javaの型のイメージ入れられるもの
敵の数を記録する箱整数型1、10、100などの整数
距離や割合を記録する箱小数型3.14、0.5などの小数
合図の一文字を入れる箱char型1文字
任務成功かどうかの札boolean型true または false

型があることで、Javaは「この変数にはどんな値を入れてよいのか」を判断できます。

たとえば、整数用の変数には整数を入れる、小数用の変数には小数を入れる、真偽値用の変数には true または false を入れる、というように整理できます。

この考え方はとても大切です。型を意識できるようになると、変数が単なる名前付きの箱ではなく、「どんな値を扱うための箱なのか」まで見えるようになります。

なぜ型を指定する必要があるのか

Javaでは、変数を使う前に型を指定します。

これは、Javaが値をあいまいに扱わず、はっきり区別して管理する言語だからです。どの変数にどんな種類の値を入れるのかを先に決めることで、Javaは安全に値を扱えます。

鬼殺隊の任務で考えると、出発前に「この箱には薬」「この袋には食料」「この巻物には任務記録」と決めておくようなものです。入れ物の役割が決まっていれば、任務中に迷わず使えます。逆に、何でも同じ箱に入れてしまうと、必要なものを取り出すときに混乱してしまいます。

型を決めることでわかること内容
記憶できる値の種類整数、小数、文字、真偽値など
記憶できる値の範囲どこまで大きい数や小さい数を扱えるか
必要なメモリ量値を保存するためにどれくらいの領域を使うか
変数の役割その変数が何を扱うためのものか

型は単なる分類ではありません。

型を指定することで、Javaはその変数に入れられる値、入れられない値を判断できます。これによって、間違った種類の値を扱おうとしたときに気づきやすくなります。

たとえば、整数を扱う変数に小数を入れようとすると、Javaは「この箱には合わない値です」と判断できます。これは、Javaが厳密に値を管理しているからです。

Javaの基本的な型

Javaには、基本的なデータ型が用意されています。

代表的なものには、boolean、char、byte、short、int、long、float、double があります。それぞれ、扱える値の種類や範囲、必要なメモリ量が異なります。

記憶できる値の範囲・内容
booleantrue または false
char2バイト文字、\u0000〜\uffff
byte1バイト整数、-128〜127
short2バイト整数、-32768〜32767
int4バイト整数、-2147483648〜2147483647
long8バイト整数、-9223372036854775808〜9223372036854775807
float4バイト単精度浮動小数点数
double8バイト倍精度浮動小数点数

この表を見ると、Javaでは値の種類ごとに型が分かれていることがわかります。

特に整数を扱う型だけでも、byte、short、int、long の4種類があります。どれも整数を扱う型ですが、使えるメモリ量や表せる範囲が違います。

鬼殺隊風にたとえるなら、同じ「荷物を運ぶ箱」でも、小箱、中箱、大箱、特大箱があるようなものです。小さな箱は軽く扱えますが、入れられる量は少なめです。大きな箱はたくさん入りますが、そのぶん場所を使います。

↓クリックすると拡大表示されます。

boolean型はtrueとfalseを表す型

boolean型は、true または false のどちらかを記憶する型です。

この型は、数を保存するための型ではありません。条件が成り立つかどうか、処理が成功したかどうか、スイッチがオンかオフか、といった二択の状態を表すために使います。

鬼殺隊の任務でたとえるなら、boolean型は「任務完了」または「任務未完了」を示す札のようなものです。

状態boolean型のイメージ
任務が成功したtrue
任務がまだ終わっていないfalse
扉が開いているtrue
扉が閉じているfalse

boolean型で大切なのは、数値の大小を表す型ではないという点です。

100より大きい、3.14を保存する、文字を入れる、といった用途には向いていません。あくまで、判断結果や状態を表すための型です。

今後、条件分岐を学ぶときに boolean型の考え方はとても重要になります。条件が成り立つかどうかを true または false で考えるからです。

char型は1文字を表す型

char型は、1文字を記憶するための型です。

ここで大切なのは、char型が扱うのは文字列ではなく、あくまで1文字だという点です。1つの英字、1つの記号、1つの日本語文字などを扱うイメージです。

鬼殺隊風にたとえるなら、char型は「一文字の合図札」です。たとえば、進め、止まれ、注意といった合図を1文字で表すような場面をイメージするとわかりやすいです。

値の見方Javaでの考え方
1文字char型で扱う
複数の文字文字列として扱う
数字の見た目をした文字計算用の数値とは別物
計算に使う数数値型で扱う

特に注意したいのは、見た目が数字でも、文字としての数字と計算に使う数値は別のものだという点です。

たとえば、見た目が 3 でも、「文字としての3」と「数値としての3」は役割が違います。文字として扱うなら char型の考え方になり、計算に使うなら整数型などの考え方になります。

この区別は、Javaを学ぶうえでとても大切です。

整数型は値の大きさに応じて使い分ける

Javaの整数型には、byte、short、int、long があります。

どれも整数を記憶するための型ですが、違いは主にサイズと記憶できる範囲です。

サイズ記憶できる範囲の特徴
byte1バイトとても小さい整数範囲
short2バイトbyteより広い整数範囲
int4バイト一般的によく使う整数範囲
long8バイト非常に大きな整数範囲

鬼殺隊の物資箱でたとえるなら、byte は小さな携帯箱、short は少し大きめの箱、int は標準の補給箱、long は大量の物資を入れられる大型箱です。

鬼殺隊風の箱整数型イメージ
小さな携帯箱byte小さい数を扱う
中くらいの箱short少し広い範囲の数を扱う
標準の補給箱intよく使う整数を扱う
大型の補給箱longとても大きな整数を扱う

サイズが大きくなるほど、より大きな数や、より小さな負の数まで扱えるようになります。

初心者の段階では、整数型には複数の種類があり、それぞれ扱える範囲が違う、と押さえておくとよいです。どれも整数を扱う型ですが、同じものではありません。

short型を例に型の意味を考える

short型は、-32768〜32767 の範囲の整数を記憶できる型です。

つまり、この範囲に収まる整数であれば short型の変数に入れられます。たとえば、3 のような整数はこの範囲に収まるため、short型で扱えます。

一方で、short型は整数専用の型です。そのため、小数点を含む 3.14 のような値を入れるための型ではありません。

ここが型の大切なところです。

short型で扱えるか理由
3扱える整数で、範囲内に収まる
100扱える整数で、範囲内に収まる
3.14扱えない小数なので整数型には合わない
50000扱えないshort型の範囲を超える

鬼殺隊の箱でたとえるなら、short型は「中くらいの整数専用箱」です。整数なら入れられますが、小数という別種類の値は入れられません。また、箱の大きさを超える数も入れられません。

型は、「何を入れられるか」だけでなく、「何を入れられないか」も決めています。

これにより、Javaは値を安全に扱えるようになっています。

図:short型は決められた範囲の整数を入れる箱

↓クリックすると拡大表示されます。

この図が示していること

この図は、short型の変数が、決められた範囲の整数だけを入れられる箱であることを示しています。

short型は、整数を扱うための型です。そのため、3 や 100 のような整数は入れられますが、3.14 のような小数は型に合いません。また、50000 のように範囲を超える値も short型には入りません。

この図から分かること

型を決めると、変数に入れられる値の種類と範囲が決まります。

変数は何でも入れられる箱ではなく、型に合った値だけを扱う箱です。この感覚がわかると、Javaで型を指定する理由が理解しやすくなります。

小数を扱う型はfloatとdouble

小数を扱うための型には、float と double があります。

float は4バイトの単精度浮動小数点数、double は8バイトの倍精度浮動小数点数を扱う型です。

ここで大切なのは、小数を扱う型は整数型とは別に用意されているという点です。3.14 のように小数点を含む値は、short や int のような整数型ではなく、float や double のような小数用の型で扱います。

サイズ役割
float4バイト小数を扱う
double8バイトより広い範囲や細かな小数を扱いやすい

鬼殺隊の道具でたとえるなら、整数型は「個数を数えるための記録札」、小数型は「距離や割合を細かく測る測定札」です。

扱いたい値向いている型
敵の数整数型
任務地点までの距離小数型
得点の合計整数型または小数型
割合や平均小数型

float と double はどちらも小数を扱いますが、サイズが違います。一般的には、double のほうが多くのメモリを使い、より広い範囲や細かな表現に対応しやすくなります。

型を選ぶときは、整数か小数かだけでなく、どのくらいの大きさや精度が必要なのかも考えることが大切です。

型のサイズとはメモリの使用量を表すもの

型のサイズとは、その型の値を記憶するために必要なメモリ量のことです。

表に出てくる 1バイト、2バイト、4バイト、8バイト という数字は、値を保存するためにどれくらいのメモリ領域を使うのかを表しています。

鬼殺隊の補給倉庫でたとえるなら、サイズは箱の大きさです。小さい箱は場所をあまり取りませんが、入れられる量は少なめです。大きい箱は場所を多く使いますが、より多くの情報を入れられます。

サイズ特徴
小さい使用するメモリは少ないが、表せる範囲は狭い
大きい使用するメモリは多いが、表せる範囲は広い

この関係を理解すると、なぜJavaに複数の整数型や小数型があるのかが見えてきます。

すべての整数を同じ型で扱うこともできそうに感じるかもしれません。しかし、必要以上に大きな型を使うと、余分なメモリを使うことになります。一方で、小さすぎる型を使うと、必要な値を表せないことがあります。

そのため、型は値の種類や範囲に合わせて選ぶことが大切です。

サイズが大きいほど表せる範囲は広くなる

一般的に、型のサイズが大きいほど、表せる値の範囲は広くなります。

byte は1バイトなので、表せる整数の範囲は小さめです。short は2バイトなので、byte より広い範囲を扱えます。int は4バイト、long は8バイトとなり、サイズが増えるほど扱える値の範囲も広がります。

整数型サイズ範囲の広さ
byte1バイト狭い
short2バイトやや広い
int4バイト広い
long8バイトとても広い

小数型でも同じように、double は float より大きなサイズを使います。そのため、より広い範囲や細かな表現に対応しやすくなります。

ただし、サイズが大きければ常に一番よい、というわけではありません。

考え方内容
大きな型広い範囲を扱えるが、メモリを多く使う
小さな型メモリを節約できるが、扱える範囲が狭い
適切な型扱いたい値に合った型を選ぶ

Javaでは、値の種類と範囲を考えて、適切な型を選ぶことが基本です。

図:型のサイズと表せる範囲の関係

↓クリックすると拡大表示されます。

この図が示していること

この図は、整数型のサイズが大きくなるほど、表せる値の範囲が広がることを示しています。

byte、short、int、long はどれも整数型ですが、使うメモリ量が違います。サイズが大きい型ほど、より大きな数や、より小さな負の数まで扱えるようになります。

この図から分かること

型にはサイズがあり、サイズは値の表現力と関係しています。

小さい型はメモリを少なく使えますが、表せる範囲は狭くなります。大きい型は広い範囲を扱えますが、そのぶん多くのメモリを使います。型を選ぶときは、扱いたい値に合った大きさを考えることが大切です。

型は変数の性格を決める

型は、変数の性格を決めるものです。

その変数は整数を入れるためのものなのか、小数を入れるためのものなのか、1文字を入れるためのものなのか、true または false を入れるためのものなのか。型を見れば、その変数がどのような値を扱うためのものなのかがわかります。

鬼殺隊風にたとえるなら、型は剣士の役割や専門分野のようなものです。

変数の性格
boolean判断結果や状態を扱う
char1文字を扱う
byte、short、int、long整数を扱う
float、double小数を扱う

変数名は「その変数が何を表すのか」を示します。一方、型は「その変数にどんな種類の値を入れるのか」を示します。

見るポイント分かること
変数名何のための値か
どんな種類の値か
サイズどれくらいの範囲を扱えるか

この3つを意識すると、変数の意味がかなり読み取りやすくなります。

型があるからこそ、Javaはミスに気づきやすくなります。たとえば、小数を扱いたいのに整数型を選んでいる場合、型の考え方を知っていれば「この型でよいのかな」と確認できます。

型を学ぶと変数の理解が深まる

変数は値を入れる箱のようなものです。

しかし、型を学ぶと、その箱には「入れられるものに決まりがある」ことがわかります。何でも入る箱ではなく、整数専用、小数専用、文字専用、真偽値専用のように、それぞれ役割が決まっています。

箱の種類Javaの型入れられる値
真偽値の箱booleantrue または false
文字の箱char1文字
整数の箱byte、short、int、long整数
小数の箱float、double小数

この考え方がわかると、これから学ぶ変数の宣言、代入、初期化も理解しやすくなります。

なぜ変数を使う前に型を書くのか。
なぜ入れられる値に制限があるのか。
なぜ整数と小数を区別する必要があるのか。

こうした疑問が、型の考え方によってつながっていきます。

データ型は、最初は表や数字が多くて少し難しく見えるかもしれません。しかし、基本はとても素直です。

扱いたい値が何なのかを考える。
その値に合った型を選ぶ。
型に合った値を変数に入れる。

この流れを押さえることが、Javaの基礎をしっかり固める大切な一歩になります。

データ型を学んだ先に見えてくること

データ型を理解すると、Javaの変数がより具体的に見えてきます。

変数は単に値を覚えるだけのものではなく、型によって扱う値の種類が決められています。このしくみによって、Javaは値を整理し、間違いを防ぎながら処理を進められます。

鬼殺隊の修行でいえば、データ型は「どの技にどの道具を使うのか」を見極める力です。敵の数を数えるなら整数、距離や割合を扱うなら小数、合図の一文字を扱うなら char、任務の成功や失敗を表すなら boolean。目的に合った型を選ぶことで、Javaの処理はわかりやすく、安全になります。

型を意識できるようになると、変数を見る目が変わります。

「この変数には何が入るのか」
「この型で十分な範囲を扱えるのか」
「整数なのか、小数なのか」
「状態を表したいのか、文字を表したいのか」

このように考えながらコードを読めるようになると、Javaの理解はぐっと深まります。変数、型、値の関係をしっかりつかんで、次の学習につなげていきましょう。