Java超|Javaのデータ型

データ型は、Javaの変数に与える“専用カプセルの種類”。何を入れる箱なのかを決めることで、値を安全に、正しく、分かりやすく扱えるようになる。

前回は、Javaの変数と識別子について学びました。

変数は、値を一時的に保存しておくためのしくみです。ドラゴンボール風にたとえるなら、変数は戦闘力、修行スコア、仲間の名前などをしまっておく エネルギーカプセル のようなものです。

ただし、Javaの変数は、何でも自由に入れられる万能カプセルではありません。

Javaでは、変数を使う前に、その変数へどのような種類の値を入れるのか を決めておく必要があります。

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

たとえば、整数を入れる変数、小数を入れる変数、1文字を入れる変数、true または false を入れる変数では、役割が違います。

ドラゴンボール風にたとえるなら、型は カプセルの専用タイプ です。

戦闘力を入れるカプセル。
距離を測るカプセル。
合図の1文字を入れるカプセル。
任務成功かどうかを示す判定札。

それぞれ、入れられるものが違います。

Javaの考え方役割ドラゴンボール風のたとえ
変数値を保存するしくみエネルギーカプセル
識別子変数につける名前カプセルの名前札
データ型入れられる値の種類を決めるカプセルの専用タイプ
実際に保存されるデータ戦闘力、距離、合図、判定結果
メモリ値を保存する場所補給基地

データ型を理解すると、変数の意味がよりはっきり見えてきます。

変数は、ただ値を入れる箱ではありません。

どんな値を入れるための箱なのか が決まっている箱です。

整数を扱うのか。
小数を扱うのか。
文字を扱うのか。
true または false を扱うのか。

この区別が分かると、Javaのコードを読む力も、書く力も一段上がります。

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

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

変数を箱やカプセルとして考えるなら、型は その箱が何専用なのかを決める札 です。

たとえば、次のようなイメージです。

カプセルの種類Javaの型のイメージ入れられるもの
敵の数を記録するカプセル整数型1、10、100などの整数
距離や割合を記録するカプセル小数型3.14、0.5などの小数
合図の1文字を入れるカプセルchar型1文字
成功・失敗を示す判定札boolean型true または false

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

たとえば、整数を入れる変数には整数を入れる。
小数を入れる変数には小数を入れる。
真偽値を入れる変数には true または false を入れる。

このように、変数ごとに扱う値の種類を整理できます。

ドラゴンボール風に言えば、戦闘力カプセルに仲間の名前を入れたり、合図札のケースに小数の距離を入れたりすると、管理が分かりにくくなります。

Javaでも同じです。

変数に入れる値の種類を先に決めておくことで、コードが安全で分かりやすくなります。

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

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

Javaが値を正しく扱うための大切なルールです。

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

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

これは、Javaが値をあいまいに扱わず、はっきり区別して管理する言語だからです。

たとえば、ある変数が整数用なのか、小数用なのか、文字用なのか、真偽値用なのかが決まっていれば、Javaはその変数を安全に扱えます。

ドラゴンボール風に考えてみましょう。

出撃前に、戦士たちはカプセルを整理します。

カプセル入れるもの
仙豆カプセル仙豆の数
距離測定カプセル敵までの距離
合図カプセル1文字の合図
判定カプセル成功 true / 失敗 false

このように役割が決まっていれば、任務中に迷わず使えます。

逆に、何でも同じカプセルに入れてしまうと、必要なものを取り出すときに混乱します。

Javaの型も同じです。

型を決めておくことで、Javaは次のようなことを判断できます。

判断できること内容
入れてよい値かその型に合った値かどうか
値の範囲は足りるかその型で表せる範囲に収まるか
メモリをどれくらい使うか型ごとに必要なサイズが決まる
どんな処理に使えるか数値計算、判定、文字処理など

たとえば、整数を扱う型に 3.14 のような小数を入れようとすると、Javaは「このカプセルには合わない値です」と判断できます。

これは、Javaが型によって値を厳密に管理しているからです。

この厳密さは、最初は少し面倒に感じるかもしれません。

でも、間違った種類の値を入れようとしたときに気づきやすくなるため、結果的に安全なプログラムを書きやすくなります。

図:データ型は変数カプセルの種類を決める

この図が示していること

この図は、データ型が変数に入れられる値の種類を決めていることを表しています。

整数型には整数、小数型には小数、char型には1文字、boolean型には true または false を入れる、というように、型によって扱える値が変わります。

この図から分かることは、変数は何でも入れられる箱ではなく、型によって役割が決まった専用カプセルのようなものだということです。

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種類があります。

どれも整数を扱う型ですが、使うメモリ量や表せる範囲が違います。

ドラゴンボール風にたとえるなら、同じ「物資カプセル」でも、小型カプセル、中型カプセル、標準カプセル、大型カプセルがあるようなものです。

小さなカプセルは軽く扱えますが、入れられる量は少なめです。

大きなカプセルはたくさん入りますが、そのぶん場所を使います。

型のグループ代表例扱うもの
真偽値型booleantrue または false
文字型char1文字
整数型byte、short、int、long整数
小数型float、double小数

まずは、Javaには値の種類に応じて複数の型があることを押さえておきましょう。

boolean型はtrueとfalseを表す型

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

この型は、数を保存するための型ではありません。

条件が成り立つかどうか、処理が成功したかどうか、スイッチがオンかオフか、といった二択の状態を表すために使います。

ドラゴンボール風にたとえるなら、boolean型は 任務成功札 のようなものです。

成功しているなら true。
成功していないなら false。

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

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

100より大きい数を保存する型ではありません。

3.14を保存する型でもありません。

文字を入れる型でもありません。

あくまで、はい / いいえ成立 / 不成立成功 / 失敗 のような判断結果や状態を表すための型です。

今後、条件分岐を学ぶときに、boolean型の考え方はとても重要になります。

条件が成り立つかどうかを true または false で考えるからです。

char型は1文字を表す型

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

ここで大切なのは、char型が扱うのは文字列ではなく、あくまで 1文字 だという点です。

たとえば、次のような値がchar型のイメージです。

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

ドラゴンボール風にたとえるなら、char型は 一文字の合図札 です。

たとえば、技、勝、止、進 のような1文字の合図を入れるカプセルです。

ただし、複数の文字をまとめて入れるカプセルではありません。

たとえば、"Java" のような文字の並びはchar型ではなく、文字列として扱う内容です。

また、見た目が数字でも、文字としての数字と計算に使う数値は別です。

'3'
3
書き方意味
'3'3という形をした文字
3計算に使える数値

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

同じ3に見えても、文字なのか数値なのかで扱いが変わります。

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

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

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

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

ドラゴンボール風にたとえるなら、整数型は 数を入れる物資カプセル です。

カプセルの種類整数型イメージ
小さな携帯カプセルbyte小さい数を扱う
中くらいのカプセルshort少し広い範囲の数を扱う
標準の補給カプセルintよく使う整数を扱う
大型の補給カプセルlongとても大きな整数を扱う

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

初心者の段階では、まず次のように押さえておくとよいです。

整数型には複数の種類があり、それぞれ扱える範囲が違う。

どれも整数を扱う型ですが、同じものではありません。

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

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

つまり、この範囲に収まる整数であれば、short型の変数に入れられます。

たとえば、3 や 100 のような整数は、この範囲に収まるため、short型で扱えます。

一方で、short型は整数専用の型です。

そのため、3.14 のような小数を入れるための型ではありません。

また、50000 のように範囲を超える値も、short型には入りません。

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

ドラゴンボール風にたとえるなら、short型は 中くらいの整数専用カプセル です。

整数なら入れられます。

でも、小数という別種類の値は入りません。

さらに、カプセルの容量を超える大きな値も入りません。

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

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

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

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

この図が示していること

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

short型は整数を扱うための型です。

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

この図から分かることは、型を決めると、変数に入れられる値の種類と範囲が決まるということです。

変数は何でも入れられる箱ではなく、型に合った値だけを扱う箱です。

小数を扱う型は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つを意識すると、変数の意味がかなり読み取りやすくなります。

たとえば、変数名が score なら、得点のような値を表していそうです。

型が int なら、整数として扱う得点だと分かります。

型が double なら、小数を含む平均点や割合のような値かもしれません。

このように、変数名と型をセットで見ると、コードの意味がぐっと見えやすくなります。

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

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

しかし、型を学ぶと、その箱には 入れられるものに決まりがある ことが分かります。

何でも入る箱ではなく、整数専用、小数専用、文字専用、真偽値専用のように、それぞれ役割が決まっています。

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

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

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

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

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

でも、基本はとても素直です。

流れ内容
1扱いたい値が何なのかを考える
2その値に合った型を選ぶ
3型に合った値を変数に入れる

ドラゴンボール風に言えば、任務に必要な道具を見極めて、それに合うカプセルを選ぶ修行です。

敵の数なら整数カプセル。
距離や割合なら小数カプセル。
合図の1文字ならcharカプセル。
成功・失敗ならboolean札。

目的に合った型を選ぶことで、Javaの処理は分かりやすく、安全になります。

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

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

変数は単に値を覚えるだけのものではありません。

型によって、扱う値の種類が決められています。

このしくみによって、Javaは値を整理し、間違いを防ぎながら処理を進められます。

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

確認すること意味
この変数には何が入るのか値の種類を考える
この型で十分な範囲を扱えるのかサイズと範囲を考える
整数なのか、小数なのか数値の種類を考える
状態を表したいのか、文字を表したいのかbooleanやcharを考える
変数名と型は合っているかコードの意味を確認する

Javaでは、型を正しく選ぶことで、値を安全に扱いやすくなります。

最初は、boolean、char、byte、short、int、long、float、double という名前が多く見えて、少し圧倒されるかもしれません。

でも、整理すると大きくは次のように考えられます。

大きな分類
真偽値boolean
文字char
整数byte、short、int、long
小数float、double

まずは、この大きな分類を押さえることが大切です。

そして次に、サイズや範囲の違いを少しずつ見ていきましょう。

データ型は、Javaで値を正しく扱うための土台です。

変数、型、値の関係をしっかりつかむことで、この先の宣言、代入、初期化、計算、条件分岐の理解につながっていきます。