Javaで変数を使うとき、必ず指定しなければならないのが「データ型」です。データ型は、変数にどんな種類のデータを入れるかを決める重要な要素。この記事では、Javaのデータ型の種類を一覧で紹介し、intやStringなどの基本的な型を初心者向けにわかりやすく解説します。


Java データ型とは何か?初心者が知っておくべき基本概念
データ型(Data Type)とは、変数に格納できるデータの種類を定義するものです。Javaは「静的型付け言語」と呼ばれ、変数を使う前に必ずデータ型を指定する必要があります。

なぜデータ型が必要なのか?そのメリットを解説
データ型を指定することで、以下のメリットがあります。
- メモリの効率化:必要な分だけメモリを確保できる
- エラーの早期発見:間違った型のデータを入れようとするとコンパイル時にエラーになる
- コードの可読性向上:変数に何が入るか一目でわかる
- 処理速度の最適化:適切な型を使うことで効率的な処理が可能
Javaのデータ型は2種類あるって本当?
Javaのデータ型は、大きく分けて2種類あります。
| 分類 | 特徴 | 例 |
|---|---|---|
| プリミティブ型 | 値そのものを格納する基本型 | int, double, boolean, char など |
| 参照型 | データの場所(参照)を格納する型 | String, 配列, クラス など |


プリミティブ型一覧:Javaの基本データ型8種類
Javaには8種類のプリミティブ型があります。これらは言語に組み込まれた基本的なデータ型です。
整数を扱うデータ型はどれを選べばいい?(4種類)
| 型 | サイズ | 範囲 | 使用例 |
|---|---|---|---|
| byte | 1バイト | -128 ~ 127 | 小さな整数 |
| short | 2バイト | -32,768 ~ 32,767 | やや小さな整数 |
| int | 4バイト | 約-21億 ~ 約21億 | 最もよく使う |
| long | 8バイト | 非常に大きな範囲 | 大きな整数 |
// 整数型の使用例
byte smallNumber = 100; // byte型: -128から127の範囲
short mediumNumber = 30000; // short型: -32,768から32,767の範囲
int normalNumber = 2000000000; // int型: 約-21億から約21億の範囲
long bigNumber = 9000000000L; // long型: 非常に大きな整数を扱う場合。末尾にLを付ける
このコードでは、byte、short、int、longそれぞれの整数型に値を代入しています。値のサイズによって適切な型を選ぶことが重要です。

小数を扱うデータ型はどちらがおすすめ?(2種類)
| 型 | サイズ | 精度 | 使用例 |
|---|---|---|---|
| float | 4バイト | 約7桁 | 精度が低くてもよい場合 |
| double | 8バイト | 約15桁 | 最もよく使う |
// 小数型の使用例
float temperature = 36.5f; // float型: 小数点以下の精度が約7桁。末尾にfを付ける
double pi = 3.141592653589793; // double型: 小数点以下の精度が約15桁。デフォルトの小数型
このコードでは、floatとdoubleの小数型に値を代入しています。通常はdoubleを使い、より高い精度が求められる場合に適しています。
真偽値と1文字を扱うデータ型とは?(2種類)
| 型 | サイズ | 格納できる値 | 使用例 |
|---|---|---|---|
| boolean | 1ビット | true または false | 条件判定 |
| char | 2バイト | 1文字(Unicode) | 1文字だけ扱う場合 |
// boolean と char の使用例
boolean isJavaFun = true; // boolean型: 真偽値(trueまたはfalse)を格納
boolean isRaining = false; // 条件分岐などで使用
char grade = 'A'; // char型: 1文字を格納。シングルクォートで囲む
char initial = '山'; // 日本語の1文字も格納可能
このコードでは、boolean型で真偽値を、char型で1文字を定義しています。char型はシングルクォートで囲む点に注意しましょう。
String型とは何か?文字列を扱う基本を理解しよう
Stringは文字列を扱うためのデータ型です。厳密にはプリミティブ型ではなく参照型ですが、非常によく使うので特別扱いされています。
String型とは何か?文字列を扱う基本を理解しよう
// String型の使用例
String name = "山田太郎"; // 文字列を格納。ダブルクォートで囲む
String greeting = "こんにちは"; // greeting変数に"こんにちは"を代入
String empty = ""; // 空文字列も格納可能
このコードは、String型変数に文字列を代入する基本的な例です。Stringは参照型の文字列であり、空文字列も扱えます。


文字列の連結はどうする?
String firstName = "太郎";
String lastName = "山田";
String fullName = lastName + firstName; // "山田太郎"が生成される
// 数値と文字列の連結
int age = 25;
String message = "私は" + age + "歳です"; // "私は25歳です"が生成される
このコードは、+演算子を使って文字列同士や数値と文字列を連結しています。数値は自動的に文字列に変換されて連結されるため便利です。
データ型の選び方ガイド:迷ったらコレを見よう
どのデータ型を使えばよいか迷ったときは、以下のガイドを参考にしてください。
- 整数を扱いたい → int(約21億を超えるならlong)
- 小数を扱いたい → double
- 文字列を扱いたい → String
- はい/いいえを扱いたい → boolean
- 1文字だけを扱いたい → char

実践例:様々なデータ型を組み合わせて使う
public class DataTypeExample {
public static void main(String[] args) {
// ユーザー情報を様々なデータ型で表現
String name = "鈴木花子"; // 名前(文字列)
int age = 28; // 年齢(整数)
double height = 162.5; // 身長(小数)
char bloodType = 'A'; // 血液型(1文字)
boolean isMarried = false; // 既婚かどうか(真偽値)
long phoneNumber = 9012345678L; // 電話番号(大きな整数)。Lを忘れずに
// 情報を出力
System.out.println("名前: " + name);
System.out.println("年齢: " + age + "歳");
System.out.println("身長: " + height + "cm");
System.out.println("血液型: " + bloodType + "型");
System.out.println("既婚: " + isMarried);
System.out.println("電話番号: 0" + phoneNumber);
}
}
このコードは、様々なデータ型を使ってユーザー情報を定義し、それらを出力する実践的な例です。格納したいデータの種類に合わせて最適なデータ型を選択しているのが分かります。
実行結果:
名前: 鈴木花子
年齢: 28歳
身長: 162.5cm
血液型: A型
既婚: false
電話番号: 09012345678
実行結果では各データ型が期待通りに表示されていることを確認できます。
よくある勘違いと対処法
範囲外の値を代入するとどうなる?
byte num = 200;
// エラー: byteの範囲は-128~127です。
このコードでは、byte型の最大値(127)を超える200を代入しようとしており、コンパイルエラーが発生します。
int num = 200;
// int型は約21億まで扱えるため、200は問題なく入ります。
このコードでは、より広い範囲を持つint型に変更することで、安全に値200を格納し、エラーを回避しています。
longやfloatのリテラル指定を忘れるとどうなる?
// NG: Lを付けずint範囲外でエラー
long big = 9999999999;
// NG: fを付けずdouble扱いでエラー
float f = 3.14;
このコードは、longとfloatの値を正しく指定していないため、コンパイルエラーが発生します。
// OK: long値にはLを付けて型を明示
long big = 9999999999L;
// OK: float値にはfを付けて型を明示
float f = 3.14f;
このコードは、longにはL、floatにはfを末尾に付けることで、リテラル(直接書かれた値)の型を明示し、エラーを回避しています。
charとStringを間違えるとどうなる?
// NG: charをダブルクォートで記述
char c = "A";
// NG: Stringをシングルクォートで記述
String s = 'Hello';
このコードでは、char型とString型でクォートの種類を間違えており、コンパイルエラーが発生します。
// OK: charはシングルクォート
char c = 'A';
// OK: Stringはダブルクォート
String s = "Hello";
このコードでは、1文字のcharはシングルクォート、複数文字のStringはダブルクォートで記述し、正しくコンパイルが通ります。

デフォルト値を知っておこう:初期化しなくても大丈夫?
クラスのフィールド(メンバ変数)として宣言した場合、初期化しなくてもデフォルト値が設定されます。
| データ型 | デフォルト値 |
|---|---|
| 整数型(byte, short, int, long) | 0 |
| 小数型(float, double) | 0.0 |
| boolean | false |
| char | ‘\u0000’(空文字) |
| 参照型(String等) | null |
- ローカル変数(メソッド内で宣言した変数)にはデフォルト値が設定されません。
- 必ず初期化してから使いましょう!
まとめ
この記事では、Javaのデータ型の基本について解説しました。
この記事のポイント
- Javaにはプリミティブ型(8種類)と参照型がある
- 整数はint、小数はdouble、文字列はStringが基本
- booleanは true/false の2値のみ
- charは1文字、Stringは文字列を扱う
- longにはL、floatにはfを付ける


データ型を正しく理解することで、効率的で安全なJavaプログラムが書けるようになります。まずは基本の4種類から始めて、徐々に他の型も使ってみましょう!

