Javaの最重要項目:変数とデータ型を最初にしっかり固めるべき理由
Javaを学び始めたとき、最初に絶対に身につけたいのが「変数」と「データ型」です。ここがあいまいなまま進むと、四則演算、条件分岐、繰り返し、メソッド、オブジェクト指向まで、あらゆる場面でつまずきやすくなります。逆に言えば、ここを丁寧に理解しておけば、その後の学習がかなりスムーズになります。
変数とは、データを入れておくための「名前付きの箱」です。ただし、何でも自由に入れられるわけではありません。Javaでは、その箱に入れるデータの種類を最初に決める必要があります。この「データの種類」がデータ型です。
たとえば、整数を入れる箱、小数を入れる箱、真偽値を入れる箱、1文字を入れる箱、文字列を入れる箱、というように役割が分かれています。Javaは型を大切にする言語なので、この考え方を最初に正確につかむことが非常に重要です。
この記事では、初心者が特につまずきやすい以下の項目を、順番にかみ砕いて説明していきます。
- 変数とは何か
- int
- double
- boolean
- char
- String
- 型変換
- var
単なる用語暗記ではなく、「なぜそうなるのか」「どこで間違えやすいのか」まで深掘りしていきます。
変数とは何か
変数とは、値を保存するための名前付きの入れ物です。Javaでは、値を使い回したり、計算結果を一時的に保持したり、条件判定に使ったりするときに変数を使います。
たとえば、年齢を表したいなら age、商品の価格を表したいなら price、ログイン中かどうかを表したいなら isLoggedIn というように、意味のある名前をつけて管理します。
基本形は次のようになります。
// データ型 変数名 = 値;
int age = 20;Javaこの1行は、次の3つの意味を持っています。
- `int` は「整数を入れる型」です
- `age` は変数名です
- `20` は実際に入れる値です
ここで重要なのは、Javaでは変数を使う前に「どんな型の値を入れるか」をはっきり決めることです。これを変数の宣言といいます。
変数を使うメリット
変数を使うと、同じ値を何度も書かずに済みます。また、後から値を変更しやすくなります。
public class Main {
public static void main(String[] args) {
// 商品の価格を変数に入れる
int price = 1500;
// 変数を使って表示する
System.out.println(price);
// 値を変更する
price = 2000;
// 変更後の値を表示する
System.out.println(price);
}
}Javaこのように、変数はプログラムの中で値を管理する中心的な仕組みです。
初心者が最初に注意すべきこと
初心者がよく混乱するのは、「変数名」と「値」は別物だという点です。age という文字が20歳を意味しているのではなく、「ageという名前の箱の中に20が入っている」というイメージです。
また、次のルールも重要です。
- 変数名の先頭に数字は使えません
- 空白は使えません
- 予約語は使えません
- 何を表す変数か分かる名前にするべきです
悪い例と良い例を比べてみます。
// 悪い例:何を表すか分かりにくい
int a = 25;
// 良い例:意味が伝わりやすい
int userAge = 25;Java変数名は自由に付けられるからこそ、分かりやすさが大切です。読みやすいコードは、自分にも他人にも優しいコードです。
int:整数を扱う基本の型
int は整数を扱うための代表的な型です。小数を含まない数を扱うときに使います。たとえば、年齢、個数、点数、人数、在庫数などです。
public class Main {
public static void main(String[] args) {
// 整数を入れる変数
int score = 85;
int itemCount = 3;
// 値を表示する
System.out.println(score);
System.out.println(itemCount);
}
}Javaint が向いている場面
int は以下のような「端数のない数」に向いています。
- 年齢
- 個数
- 順位
- ページ数
- 在庫数
たとえば、りんごが3.5個ある、という扱いは普通しません。そのため、個数には int が向いています。
int の計算
int は四則演算にもよく使います。
public class Main {
public static void main(String[] args) {
// 2つの整数を用意する
int a = 10;
int b = 3;
// 足し算</em>
System.out.println(a + b); // 13
// 引き算</em>
System.out.println(a - b); // 7
// 掛け算</em>
System.out.println(a * b); // 30
// 割り算</em>
System.out.println(a / b); // 3
// 余り</em>
System.out.println(a % b); // 1
}
}Java最重要注意点:int 同士の割り算
これは初心者が非常によくミスする重要ポイントです。int 同士で割り算をすると、結果も int になります。そのため、小数部分は切り捨てられます。
public class Main {
public static void main(String[] args) {
// int 同士の割り算
int result = 10 / 3;
// 小数ではなく整数になる
System.out.println(result); // 3
}
}Java「10 ÷ 3 なのに 3.333… にならないの?」と思うかもしれませんが、int は整数専用なので、小数を保持できません。そのため、結果の小数部分が消えます。
もし小数で結果を出したいなら、double を使う必要があります。ここは本当に大事です。Javaでは「見た目の式」ではなく、「何型で計算しているか」で結果が変わります。
int の練習問題
次のコードを書いて、結果を確認してみてください。
public class Main {
public static void main(String[] args) {
// 商品数と単価を変数に入れる
int quantity = 4;
int price = 500;
// 合計金額を計算する
int total = quantity * price;
// 結果を表示する
System.out.println("合計金額は" + total + "円です。");
}
}Javaこの練習では、変数に値を入れること、掛け算すること、文字列と数値をつなげて表示することを同時に学べます。
double:小数を扱う型
double は小数を扱うための型です。たとえば、身長、体重、平均点、温度、税込価格の計算結果などに使います。
public class Main {
public static void main(String[] args) {
// 小数を入れる変数
double height = 168.5;
double weight = 60.2;
// 値を表示する
System.out.println(height);
System.out.println(weight);
}
}Javadouble が必要な理由
Javaでは、整数と小数を明確に区別します。int は整数だけ、double は小数を含む数を扱います。
たとえば、平均点を計算するときに int だけで計算すると、正しい小数結果が得られないことがあります。
public class Main {
public static void main(String[] args) {
// int 同士で平均を計算
int total = 10;
int count = 4;
int average = total / count;
// 2.5 ではなく 2 になる
System.out.println(average);
}
}Java正しく小数まで出したいなら、double を使います。
public class Main {
public static void main(String[] args) {
// 小数で平均を計算する
double total = 10;
double count = 4;
double average = total / count;
// 小数で表示される
System.out.println(average); // 2.5
}
}Javaint と double が混ざるとどうなるか
Javaでは、int と double を一緒に計算すると、基本的に double 側に合わせられます。
public class Main {
public static void main(String[] args) {
// int と double を混ぜて計算
int itemPrice = 1000;
double taxRate = 1.1;
// 計算結果は double になる
double totalPrice = itemPrice * taxRate;
// 結果を表示する
System.out.println(totalPrice);
}
}Javaこのように、小数が1つでも関わる計算では、結果が小数型になることが多いです。
重要な注意点:double は誤差が出ることがある
ここは初心者向けの範囲では後回しにされがちですが、かなり重要です。double は便利ですが、すべての小数を完全に正確に表せるわけではありません。コンピュータ内部では2進数で数を扱うため、一部の10進数の小数をぴったり表現できません。
たとえば、金額計算では誤差が問題になることがあります。そのため、業務システムでは金額に double を安易に使わないことがあります。学習初期ではまず double の役割を理解すれば十分ですが、「小数には誤差の可能性がある」という意識は持っておくとよいです。
double の練習問題
public class Main {
public static void main(String[] args) {
// 商品の税抜価格
int price = 1200;
// 税率
double taxRate = 1.1;
// 税込価格を計算
double totalPrice = price * taxRate;
// 結果を表示
System.out.println("税込価格は" + totalPrice + "円です。");
}
}Javaこの例では、整数と小数を混ぜた計算の基本が学べます。
boolean:真か偽かを表す型
boolean は「はい」「いいえ」、「真」「偽」を表す型です。入れられる値は true または false の2つだけです。
public class Main {
public static void main(String[] args) {
// 真偽値を入れる変数
boolean isLoggedIn = true;
boolean isFinished = false;
// 値を表示する
System.out.println(isLoggedIn);
System.out.println(isFinished);
}
}Javaboolean は何に使うのか
boolean は条件分岐や繰り返しで非常によく使います。たとえば、次のような状態を表現できます。
- ログインしているか
- 年齢制限を満たしているか
- 処理が完了したか
- エラーがあるか
- スイッチがオンかオフか
比較結果は boolean になる
数値や文字列を比較した結果は、boolean になります。
public class Main {
public static void main(String[] args) {
// 年齢を用意する
int age = 20;
// 18歳以上かどうかを判定する
boolean isAdult = age >= 18;
// 判定結果を表示する
System.out.println(isAdult); // true
}
}Javaこのコードでは、age >= 18 という比較式の結果が true になり、それが isAdult に入ります。
重要な感覚:boolean は状態を言葉で読む
boolean の変数名は、英語の質問文のように読むと分かりやすくなります。たとえば isAdult は「大人ですか」、hasError は「エラーがありますか」、canLogin は「ログインできますか」という意味になります。
public class Main {
public static void main(String[] args) {
// パスワードが正しいかどうか
boolean isPasswordCorrect = true;
// 分かりやすい変数名で状態を表現する
System.out.println(isPasswordCorrect);
}
}Javaこれは可読性に直結する重要ポイントです。flag のようなあいまいな名前より、意味が伝わる名前の方が圧倒的に良いです。
boolean の練習問題
public class Main {
public static void main(String[] args) {
// テストの点数
int score = 75;
// 合格ラインを満たしているか判定
boolean isPass = score >= 60;
// 結果を表示
System.out.println("合格ですか: " + isPass);
}
}Javaこの練習で、比較式と boolean の関係が理解しやすくなります。
char:1文字だけを扱う型
char は1文字だけを扱う型です。たとえば、成績評価の A、B、C や、記号1文字などを扱うときに使います。
public class Main {
public static void main(String[] args) {
// 1文字を入れる変数
char grade = 'A';
char symbol = '★';
// 値を表示する
System.out.println(grade);
System.out.println(symbol);
}
}Javachar の重要ルール:シングルクォートを使う
char は必ずシングルクォート ' ' で囲みます。
char c = 'a';Java一方で、ダブルクォート " " は String に使います。この違いは非常に重要です。
- `’a’` は `char` です
- `”a”` は `String` です
見た目は似ていますが、Javaではまったく別の型です。
よくあるミス
初心者がよくやる間違いは、char に2文字以上を入れようとすることです。
// これはエラーになる
// char text = 'ab';Javachar は1文字専用です。2文字以上の文字の並びは String を使う必要があります。
char は今どう考えるべきか
現代のJava学習では、初心者が char を大量に使う場面はそれほど多くありません。実務や学習の多くでは文字列全体を String で扱うことの方が多いです。ただし、char は「1文字」と「文字列」の違いを理解するために大切です。
char の練習問題
public class Main {
public static void main(String[] args) {
// 成績評価を1文字で表す
char rank = 'B';
// 結果を表示する
System.out.println("評価は" + rank + "です。");
}
}Javaこの例はシンプルですが、char の基本を確認するには十分です。
String:文字列を扱う最重要クラス
String は文字列を扱うための型です。名前、メッセージ、メールアドレス、住所、商品名など、人が読むテキストのほとんどは String で扱います。
public class Main {
public static void main(String[] args) {
// 文字列を入れる変数
String name = "田中";
String message = "こんにちは";
// 値を表示する
System.out.println(name);
System.out.println(message);
}
}JavaString は初心者が最もよく使う型の1つ
Javaの学習では、int と並んで String の使用頻度が非常に高いです。入力、表示、ファイル名、メニュー名、検索キーワードなど、文字の集まりを扱う場面は大量にあります。
String の重要ルール:ダブルクォートを使う
String はダブルクォート " " で囲みます。
String city = "Tokyo";Javaここで char との違いをもう一度確認してください。
- `’T’` は1文字なので `char`
- `”Tokyo”` は複数文字なので `String`
- `”A”` は1文字に見えても `String`
この最後のポイントは大事です。"A" は1文字でもダブルクォートなので String です。
String の連結
String は + を使ってつなげることができます。
public class Main {
public static void main(String[] args) {
// 名前を変数に入れる
String firstName = "山田";
String lastName = "太郎";
// 文字列を連結する
String fullName = lastName + firstName;
// 結果を表示する
System.out.println(fullName);
}
}Java数値と文字列をつなぐとどうなるか
数値と文字列を + でつなぐと、数値は文字列として扱われます。
public class Main {
public static void main(String[] args) {
// 年齢を変数に入れる
int age = 20;
// 文字列と数値を連結する
System.out.println("年齢は" + age + "歳です。");
}
}Javaこのとき、age は計算ではなく文字列の一部として扱われます。
最重要注意点:String は数値ではない
初心者が非常につまずきやすいのがここです。見た目が数字でも、ダブルクォートで囲まれていれば文字列です。
String a = "10";
String b = "20";
System.out.println(a + b); <em>// 1020</em>Javaこの結果は 30 ではなく 1020 です。なぜなら、数値の足し算ではなく文字列の連結だからです。
もし計算したいなら、文字列を数値に変換する必要があります。これが型変換につながります。
String の練習問題
public class Main {
public static void main(String[] args) {
// 自己紹介の情報を変数に入れる
String name = "佐藤";
int age = 18;
// 文字列として組み立てて表示する
System.out.println("名前は" + name + "、年齢は" + age + "歳です。");
}
}Javaこの練習では、String と int を一緒に使う感覚が身につきます。
型変換:データ型を変える重要技術
型変換とは、ある型の値を別の型として扱えるように変えることです。Javaでは、この型変換が非常に重要です。特に、int と double、String と数値の変換は頻繁に登場します。
型変換を理解していないと、「なぜ小数が消えたのか」「なぜ計算できないのか」「なぜエラーになるのか」が分かりにくくなります。
型変換には大きく分けて2種類あります。
- 自動で行われる型変換
- 自分で明示する型変換
自動型変換
小さい表現範囲の型から大きい表現範囲の型へは、自動で変換されることがあります。初心者がまず覚えるべき代表例は int から double です。
public class Main {
public static void main(String[] args) {
// int の値を用意する
int num = 10;
// int から double に自動変換される
double result = num;
// 結果を表示する
System.out.println(result); // 10.0
}
}Javaこれは情報が失われにくい変換なので、自動で許可されます。
明示的型変換 キャスト
一方で、double から int のように、小数を整数に変えると情報が失われる可能性がある変換は、自分ではっきり指示する必要があります。これをキャストといいます。
public class Main {
public static void main(String[] args) {
// 小数を用意する
double price = 12.8;
// int に変換する
int result = (int) price;
// 小数部分は切り捨てられる
System.out.println(result); // 12
}
}Java超重要:キャストは四捨五入ではない
これは本当に大切です。(int) を使って double を int に変換すると、小数部分は切り捨てられます。四捨五入ではありません。
- `(int) 12.9` は `12` です
- `(int) 12.1` も `12` です
この仕様を知らないと、意図しないバグにつながります。
文字列を数値に変換する
実務でも学習でも非常によく使うのが、String を int や double に変換する処理です。
public class Main {
public static void main(String[] args) {
// 数字の文字列を用意する
String strNumber = "123";
// String を int に変換する
int number = Integer.parseInt(strNumber);
// 計算できるようになる
System.out.println(number + 10); // 133
}
}Java小数なら Double.parseDouble() を使います。
public class Main {
public static void main(String[] args) {
// 小数の文字列を用意する
String strPrice = "19.8";
// String を double に変換する
double price = Double.parseDouble(strPrice);
// 計算結果を表示する
System.out.println(price + 0.2); // 20.0
}
}Java数値を文字列に変換する
逆に、数値を文字列にしたいこともあります。表示用の文章を作るときなどです。
public class Main {
public static void main(String[] args) {
// 数値を用意する
int score = 90;
// 数値を文字列に変換する
String strScore = String.valueOf(score);
// 文字列として連結できる
System.out.println("点数は" + strScore + "点です。");
}
}Java型変換で特に注意すべきこと
ここはしっかり押さえておくべき重要ポイントです。
- `int` 同士の割り算は整数になる
- `double` から `int` への変換では小数部分が切り捨てられる
- 数字に見える文字列でも `String` は数値ではない
- 変換できない文字列を数値にしようとするとエラーになる
たとえば次のようなコードはエラーの原因になります。
public class Main {
public static void main(String[] args) {
// 数字ではない文字列
String text = "abc";
// これはエラーになる可能性がある
// int number = Integer.parseInt(text);
}
}JavaInteger.parseInt() は、数字として読める文字列でなければ使えません。つまり、型変換は便利ですが、元の値が何なのかを理解して使う必要があります。
var:型推論を使った書き方
var は、右辺の値からJavaが型を推測してくれる書き方です。Java 10以降で使えます。
public class Main {
public static void main(String[] args) {
// 右辺が整数なので int と推測される
var age = 20;
// 右辺が小数なので double と推測される
var height = 170.5;
// 右辺が文字列なので String と推測される
var name = "Suzuki";
// 値を表示する
System.out.println(age);
System.out.println(height);
System.out.println(name);
}
}Javavar は何が便利なのか
型名を毎回書かなくてもよいので、コードが少しすっきりします。特に、型名が長いときに便利です。
ただし、初心者のうちは便利さだけで飛びつかない方がよいです。なぜなら、今どんな型の値を扱っているのかを意識しにくくなるからです。
初心者へのおすすめ方針
学習初期は、まず int、double、boolean、char、String を明示して書くことをおすすめします。その上で、型の感覚がついてきたら var を使うと理解が深まります。
つまり、次の順番が理想です。
- 最初は明示的に型を書く
- 型の違いを理解する
- その後で `var` を使う
var の注意点
var にはいくつか注意点があります。
- 初期値がないと使えません
- `null` だけでは型を推測できません
- 何の型か分かりにくいコードでは逆に読みにくくなります
たとえば次は使えません。
// これはエラーになる
// var x;Javaなぜなら、右辺がないので型を推測できないからです。
また、次のようなケースも避けた方がよいです。
public class Main {
public static void main(String[] args) {
// 何の値か読み手に伝わりにくい場合がある
var x = getValue();
}
// サンプル用メソッド
public static int getValue() {
return 100;
}
}Javaこれだと x が何型なのか、コードを見た瞬間には分かりにくくなります。var は便利ですが、読みやすさを下げてはいけません。
初学者向け:まず身につけたい書き方テンプレート
ここでは、初心者が最初に何度も使う基本テンプレートをまとめます。最初はこの形を手で何度も書くことが重要です。
整数を使うテンプレート
public class Main {
public static void main(String[] args) {
// 整数の変数を宣言して値を入れる
int number = 10;
// 値を表示する
System.out.println(number);
}
}Java小数を使うテンプレート
public class Main {
public static void main(String[] args) {
// 小数の変数を宣言して値を入れる
double value = 3.14;
// 値を表示する
System.out.println(value);
}
}Java真偽値を使うテンプレート
public class Main {
public static void main(String[] args) {
// 真偽値の変数を宣言して値を入れる
boolean isSuccess = true;
// 値を表示する
System.out.println(isSuccess);
}
}Java1文字を使うテンプレート
public class Main {
public static void main(String[] args) {
// 1文字の変数を宣言して値を入れる
char initial = 'J';
// 値を表示する
System.out.println(initial);
}
}Java文字列を使うテンプレート
public class Main {
public static void main(String[] args) {
// 文字列の変数を宣言して値を入れる
String text = "Hello";
// 値を表示する
System.out.println(text);
}
}Java型変換テンプレート
public class Main {
public static void main(String[] args) {
// 文字列の数字を用意する
String str = "100";
// 文字列を整数に変換する
int number = Integer.parseInt(str);
// 計算して表示する
System.out.println(number + 50);
}
}Javavar テンプレート
public class Main {
public static void main(String[] args) {
// 型推論を使って変数を宣言する
var message = "Java";
// 値を表示する
System.out.println(message);
}
}Java初心者が特によく間違えるポイントまとめ
ここは復習として非常に重要です。次の違いをはっきり区別できるようにしてください。
- `int` は整数、`double` は小数
- `boolean` は `true` または `false`
- `char` は1文字、`String` は文字列
- `’A’` は `char`、`”A”` は `String`
- `10 / 3` は `int` 同士なら `3` になる
- `”10″ + “20”` は `30` ではなく `1020`
- `(int)` は四捨五入ではなく切り捨て
- `var` は便利だが、型理解が先
これらは細かい知識ではなく、Javaの基礎体力そのものです。ここをあいまいにしないことが、上達への近道です。
例題で総仕上げ:変数と型をまとめて使う
最後に、今回学んだ内容をまとめて使う例を見てみます。
public class Main {
public static void main(String[] args) {
// 名前を文字列で保存する
String name = "高橋";
// 年齢を整数で保存する
int age = 22;
// 身長を小数で保存する
double height = 172.3;
// 成人かどうかを判定する
boolean isAdult = age >= 18;
// 頭文字を1文字で保存する
char initial = 'T';
// 各値を表示する
System.out.println("名前: " + name);
System.out.println("年齢: " + age);
System.out.println("身長: " + height);
System.out.println("成人ですか: " + isAdult);
System.out.println("イニシャル: " + initial);
}
}Javaこの1つのプログラムの中に、String、int、double、boolean、char がすべて入っています。こうした総合練習をすると、型ごとの役割の違いがかなりクリアになります。
学習を前に進めるための実践アドバイス
変数と型は、読んだだけでは身につきにくい分野です。実際に自分の手でコードを書いて、値を変えて、結果がどう変わるかを確認することが重要です。
特に次の練習が効果的です。
- 値を少しずつ変えて出力結果を見る
- `int` を `double` に変えて違いを確認する
- `char` と `String` の違いを試す
- 文字列の数字を数値に変換して計算する
- `var` を通常の型宣言に書き換えて中身を確かめる
プログラミングでは、「分かったつもり」が一番危険です。基礎ほど手を動かして確認するべきです。
まとめ
Javaの学習で最優先で固めるべきなのは、変数とデータ型の理解です。
- `int` は整数
- `double` は小数
- `boolean` は真偽値
- `char` は1文字
- `String` は文字列
- 型変換は計算や入力処理で必須
- `var` は便利だが基礎理解の後で使うと効果的
特に重要なのは、「Javaは型を大切にする言語である」という感覚です。何をどの型で扱うのかを意識できるようになると、エラーの意味も分かりやすくなり、コードを書く力が安定して伸びていきます。
最初のうちは、短いコードで構いません。1つの型につき1つの小さなプログラムを書いて、表示して、少し改造してみてください。その積み重ねが、確かな実力になります。

