変数とデータ型
変数はデータを格納するコンテナです。このレッスンでは、Javaの変数とデータ型を学びます。
変数とは
変数はメモリ内のデータを保持するストレージ位置です。
変数の3要素
| 要素 | 説明 | 例 |
|---|---|---|
| 型 | どのような種類のデータを格納するか | int、double、String |
| 名前 | この変数を見つける方法 | age、price、name |
| 値 | 変数に格納されたデータ | 25、9.99、"Alice" |
変数の宣言
JAVA
// 先に宣言してから代入
int age;
age = 25;
// 宣言と代入を同時に行う
int age = 25;
// 同じ型の複数の変数を宣言
int x = 1, y = 2, z = 3;
命名規則
構文規則(必須)
| 規則 | 正しい | 誤り |
|---|---|---|
| 文字、数字、アンダースコア、$のみ使用可能 | myVar |
my-var |
| 数字で始めることはできない | name1 |
1name |
| Javaのキーワードは使用できない | myClass |
class |
| 大文字小文字を区別 | age ≠ Age |
— |
命名規約(推奨)
| 規約 | 例 | 説明 |
|---|---|---|
| camelCase | myVariableName |
変数とメソッド |
| 意味のある名前 | studentAge |
a、b、tempは避ける |
| 定数は大文字 | MAX_VALUE |
アンダースコアで区切る |
プリミティブデータ型
Javaには8つのプリミティブデータ型があります。
整数型
| 型 | サイズ | 範囲 | 例 |
|---|---|---|---|
byte |
1バイト | -128〜127 | byte b = 100; |
short |
2バイト | -32768〜32767 | short s = 1000; |
int |
4バイト | -21億〜21億 | int i = 100000; |
long |
8バイト | より大きな範囲 | long l = 100L; |
💡 デフォルトでは
intを使用します。より大きな範囲が必要な場合はlong(Lサフィックス付き)を使用してください。
浮動小数点型
| 型 | サイズ | 精度 | 例 |
|---|---|---|---|
float |
4バイト | 6〜7桁 | float f = 3.14f; |
double |
8バイト | 15桁 | double d = 3.14; |
💡 デフォルトでは
doubleを使用します。floatが必要な場合はfサフィックスを追加してください。
文字型
JAVA
char c1 = 'A'; // 単一引用符で囲んだ単一文字
char c2 = 'B'; // 任意の文字を格納可能
char c3 = 65; // ASCIIコード値も使用可能
ブール型
JAVA
boolean isTrue = true;
boolean isFalse = false;
💡 注意: Javaでは、ブール値は
trueまたはfalseのみです。0や1で表すことはできません。
参照データ型
8つのプリミティブ型以外はすべて参照型です。
一般的な参照型
JAVA
String name = "Alice"; // 文字列
int[] arr = {1, 2, 3}; // 配列
Object obj = new Object(); // オブジェクト
String
JAVA
// 文字列は二重引用符を使用
String greeting = "Hello, World!";
// 文字列の連結
String fullName = "John" + " " + "Doe";
// 文字列の長さ
int len = greeting.length(); // 13
型変換
自動型変換(小→大)
JAVA
int i = 100;
long l = i; // intからlongに自動変換
double d = i; // intからdoubleに自動変換
明示的型キャスト(大→小)
JAVA
double d = 3.14;
int i = (int) d; // 明示的キャスト、結果は3(小数点以下切り捨て)
long l = 100;
int i = (int) l; // 明示的キャスト
⚠️ 注意: 明示的キャストは精度の喪失やオーバーフローを引き起こす可能性があります。注意して使用してください。
例:型変換
JAVA
public class TypeConversion {
public static void main(String[] args) {
// 自動型変換
int a = 100;
long b = a;
double c = a;
System.out.println("int: " + a); // 100
System.out.println("long: " + b); // 100
System.out.println("double: " + c); // 100.0
// 明示的型キャスト
double d = 3.99;
int e = (int) d;
System.out.println("double: " + d); // 3.99
System.out.println("int: " + e); // 3(切り捨て、四捨五入ではない)
}
}
final定数
finalキーワードを使用して定数を定義します。一度代入すると、その値を変更することはできません。
JAVA
final double PI = 3.14159;
final String APP_NAME = "MyApp";
final int MAX_SIZE = 100;
// PI = 3.14; // エラー!定数は変更できません
💡 命名規約: 定数名はすべて大文字で、アンダースコアで区切ります。
varローカル変数型推論
Java 10では、ローカル変数の自動型推論を可能にするvarキーワードが導入されました。
JAVA
// 従来の方法
String name = "Alice";
ArrayList<String> list = new ArrayList<String>();
// varを使用
var name = "Alice"; // Stringとして自動推論
var list = new ArrayList<String>(); // ArrayList<String>として自動推論
⚠️ 注意:
varはローカル変数にのみ使用でき、クラスメンバ変数やメソッドパラメータには使用できません。
❓ よくある質問
Q intとIntegerの違いは何ですか?
A intはプリミティブ型、Integerはラッパークラス(参照型)です。Integerはnullにできますが、intはできません。
Q floatとdoubleのどちらを選ぶべきですか?
A 通常、より高い精度のdoubleを使用します。メモリを節約するか、大量の浮動小数点データを処理する必要がある場合のみfloatを使用してください。
Q Stringはプリミティブ型ですか?
A いいえ。Stringは参照型ですが、Javaは特別なサポートを提供しており、文字列リテラルで直接代入できます。
📖 まとめ
- 変数はデータを格納するコンテナで、型、名前、値の3つの要素を持つ
- Javaには8つのプリミティブ型がある:byte/short/int/long/float/double/char/boolean
- デフォルトではintとdoubleを使用;より大きな範囲が必要な場合はlongとfloatを使用
- 型変換は自動(小→大)と明示的(大→小)に分かれる
- finalは変更できない定数を定義する
- varで自動型推論が可能(Java 10+)
📝 演習
- 変数練習: 名前、年齢、身長、体重を格納する変数を定義し、出力する
- 型変換: double値3.14をintに変換し、結果を観察;int値100をdoubleに変換し、結果を観察
- 定数練習: 円周率の定数PIを定義し、半径5の円の面積を計算
次のレッスン
次のレッスンでは、演算子を学びます — Javaの various 演算を理解します。



