ざっくり要点
- 変数は「データを入れる箱」。箱ごとに入れられるもの(型)が決まっている。
- Java の基本データ型(プリミティブ型)は主に 整数・小数・文字・真偽(真/偽) の4グループ。
- 普段よく使うのは
int(整数)、double(小数)、char(1文字)、boolean(true/false)。まずはこれらを覚えよう。
各型をやさしく説明(例つき)
1) 整数型:byte, short, int, long
- 何を入れる? 小数点なしの数(例:
100,-5) - よく使うのは
int:普通の整数はintでOK。 longは大きな整数用:末尾にLを付ける(例:12345678910L)。- 範囲(目安)
byte: -128 ~ 127short: -32768 ~ 32767int: -2,147,483,648 ~ 2,147,483,647long: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
例:int と long
int a = 100;
long b = 12345678910L;
System.out.println(a); // => 100
System.out.println(b); // => 12345678910
Java注意(オーバーフロー):int の限界を超えると数値がぐちゃっと変わります(例を後述)。
2) 浮動小数点型:float, double
- 何を入れる? 小数(例:
3.14) - デフォルトは
double:小数リテラルは自動でdoubleと見なされる。 floatを使うとき は末尾にFを付ける(例:3.14F)。付けないとコンパイルエラーになる。- 精度の目安:
floatは約7桁、doubleは約15桁の有効桁数(おおよそ)。
例:double と float
double d = 3.141592653589793;
float f = 3.14F;
System.out.println(d); // => 3.141592653589793
System.out.println(f); // => 3.14
Java注意(丸め誤差):小数計算は厳密にならないことがある(0.1+0.2 が 0.30000000000000004 になるような現象)。
3) 文字型:char
- 何を入れる? ひとつの「文字」(例:
'a','あ','花') - Java の
charは Unicode(16ビット)を扱えるので日本語の1文字もOK。 - 文字はシングルクォート
' 'で囲む(ダブルクォートはString用)。
例:文字と数値の関係
char c = 'A';
System.out.println(c); // => A
System.out.println((int)c);// => 65 (A の Unicode/ASCII コード)
Javachar は内部的には数字なので、数値にキャストできる(文字コードを見るときに使う)。
4) 真偽型:boolean
- 何を入れる?
trueまたはfalseの二択だけ。 - 条件(if文)やフラグ(処理するかどうか)でよく使う。
例:
boolean flag = true;
if (flag) {
System.out.println("処理を実行します");
} else {
System.out.println("処理をスキップします");
}
Java基本的な操作例(足し算・文字結合・比較など)
足し算(整数)
int x = 5;
int y = 7;
System.out.println(x + y); // => 12
Java小数の計算
double p = 1.2;
double q = 2.3;
System.out.println(p + q); // => 3.5(ただし表示上は 3.5 でも内部では微小な誤差あり)
Java文字列結合(+ は文字列連結にも使える)
int n = 10;
System.out.println("n=" + n); // => n=10
Java比較(真偽値)
int a = 3;
int b = 5;
boolean result = (a < b);
System.out.println(result); // => true
Java型変換(キャスト)と注意点
- 自動変換(安全):小さい型 → 大きい型は自動で変わる(例:
int→long)。 - 強制変換(キャスト):大きい型 → 小さい型は明示的にキャストが必要で、情報が切り捨てられることがある。
例:double d = 3.9; int i = (int)d; // i は 3 になる(小数部切り捨て)
例:キャスト
double d = 3.9;
int i = (int)d;
System.out.println(i); // => 3
Javaよくある初心者ミスとその対処
- 小数リテラルの型ミス(float に代入)
float f = 3.14; // コンパイルエラー(3.14 は double とみなされる) float f2 = 3.14F; // OK - long リテラルに
Lを付け忘れるlong big = 12345678910; // コンパイルエラー(リテラルが int と見なされ範囲外) long big2 = 12345678910L; // OK - char をダブルクォートで囲んでしまう(String と混同)
char c = "a"; // コンパイルエラー char c2 = 'a'; // OK - 整数のオーバーフロー
intの最大値を越えると負の値にぐるっと回る(オーバーフロー)。int v = 2147483647; // int の最大 System.out.println(v + 1); // => -2147483648 (オーバーフロー)→ 大きな数を扱うならlongを使う。
実践例:小さなプログラム(説明つき)
class Example {
public static void main(String[] args) {
int apples = 3; // 整数
double price = 120.5; // 小数(1個あたりの価格)
double total = apples * price;// 計算(int と double の混在は double に昇格)
char mark = '★'; // 1文字(評価マーク)
boolean inStock = true; // 在庫フラグ
System.out.println("個数: " + apples); // 3
System.out.println("単価: " + price); // 120.5
System.out.println("合計: " + total); // 361.5
System.out.println("マーク: " + mark); // ★
System.out.println("在庫あり? " + inStock); // true
}
}
Javaapples * priceではapples(int)がdoubleに自動変換され、doubleとして計算される。
練習(ミニ問題) — 手を動かして確かめよう(解答は下に)
int型の変数aに10、bに3を入れてa / bとa % bを表示してみよう。double型で0.1 + 0.2を計算して結果を表示してみよう。何が出る?charに'あ'を入れて、その数値((int)char)を表示してみよう。longに10000000000を代入して表示してみよう(ヒント:末尾に何を付ける?)。floatに1.23456789Fを入れて表示してみよう。精度はどうなる?
(解答)
a / bは 3(整数除算で小数は切り捨て)、a % bは 1(余り)。- 多くの環境で
0.30000000000000004のように表示される(丸め誤差)。 'あ'のコードポイント(例:12354 など。環境の Unicode 表示を確認)。long x = 10000000000L;(末尾にLを付ける)。floatは約7桁の精度なので1.2345679のように丸められることがある。
まとめ(初心者が今日覚えること)
- まずは
int,double,char,booleanを使えるようにする。 - 小数は
doubleを基本に、floatを使うときはFを付けること。 longのリテラルにはLを付ける。- 文字は
' '(シングルクォート)、文字列は"(ダブルクォート)。 - 実際に手を動かして、サンプルを打ち込んで実行してみるのが一番理解が早い。
