前節で見たとおり、プログラミングで変数は不可欠な仕組みです。 Java では変数を作って使うときに、代入する種類に応じて「型」を宣言する必要があります。
Java が扱うデータには、数字/文字列/画像/音など、沢山の種類があります。そのなかで、次に挙げるものは、基本データ型(プリミティブ型)と呼ばれる基礎的なデータの種類を表しています。
| 型名 | ビット数(バイト数) | 表現できる範囲 | 分類 |
|---|---|---|---|
byte | 8 (1) | (-27, 27-1) = (-128, 127) | 符号付整数型 |
short | 16 (2) | (-215, 215-1) | |
int | 32 (4) | (-231, 231-1) | |
long | 64 (8) | (-263, 263-1) | |
char | 16 (2) | Unicode の一文字 | 文字(整数型) |
float | 32 (4) | IEEE 754 規格の 32 ビット浮動小数点数 | 浮動小数点数型 |
double | 64 (8) | IEEE 754 規格の 64 ビット浮動小数点数 | |
boolean | ? (?) | true/false |
論理値型 |
整数型にはいくつか種類がありますが、保持できる数字の範囲が異なります。
long 型の整数の場合、代入数字に L を付けてください。数字は実は int 型と同じ 32 ビットしか保持できませんので、 long 型に代入するときには、明示的に示す必要があります。
long dbla=12345678901L;
文字型 char は UNICODE (UTF-16) の一文字をあらわします。 UNICODE とは文字セットの一つです。文字セットとは、二進数のコンピュータで文字を識別する為の番号と文字の組のことであり、文字をビットパターンに符号化したものの組のことです。 Java では Unicode という文字セットに符号化する文字符号化方法を標準で利用しています。
char 型のリテラルはシングル・クオティション (') で括ります。代入する文字は、普通にキーボードで文字を入力するか、 Unicode のマップ番号を直に記述します。
char lett='あ'; char c2='\u0041';
文字型データは、符号なしの整数型として扱われます。
浮動小数の場合は double 型と解釈されるので、 float 型変数に小数を代入する際には F を付けて明示します。
float f1=3.1415F;
ブール代数型(ブーリアン)とも呼ばれます。
boolean 型の変数には、 true か false 以外の値は入りません。例えば、式 a < b は、a が b よりも小さいならば true が返り、そうでなければ false が返ります。この結果を代入できる変数の型は、 boolean 型になります。
boolean logo = a < b;
TestVariable.java
class TestVariable {
public static void main(String[] args) {
// 変数の型宣言 変数へ値の代入
// 整数型
byte b; b=100;
short s; s=200;
int i; i=300;
long l; l=12345678901L;
// 文字型
char c; c='あ';
char c2; c2='\u0041';
// 浮動小数点数型
float f; f=3.1415F;
double d; d=3.1415;
// 論理値型(ブーリアン型)
boolean bln; bln=true;
System.out.println("符号付整数型");
System.out.println(" byte: " + b);
System.out.println(" short: " + s);
System.out.println(" int: " + i);
System.out.println(" long: " + l);
System.out.println("文字型");
System.out.println(" char: " + c + ", " + c2);
System.out.println("浮動集数点数型");
System.out.println(" float: " + f);
System.out.println(" double: " + d);
System.out.println("論理値型(ブーリアン型)");
System.out.println(" boolean: " + bln);
}
}
long 型、 char 型、 float 型、 boolean 型について、良く覚えておくと良いでしょう。
char 型の '\u0041' の \ は、後続の文字列がマップ番号であることを示すものであり、文字セットによって「円マーク」か「バックスラッシュ」になります。番号は UNICODE のコード番号です。 '\u0041' は半角英大文字の 'A' にマップされています。 '\u0061' は小文字の a 、'\u0030' は数字の0、 '\u0031' が数字の1です。
変数の型宣言と値の代入は、次のようにも書けます:
class TestVariable {
public static void main(String[] args) {
// 変数の型宣言と値の代入
// 整数型
byte b=100;
short s=200;
int i=300;
long l=12345678901L;
// 文字型
char c='あ';
char c2='\u0041';
// 浮動集数点数型
float f=3.14F;
double d=3.14;
// 論理値型(ブーリアン型)
boolean bln=true;
System.out.println("符号付整数型");
System.out.println(" byte: " + b);
System.out.println(" short: " + s);
System.out.println(" int: " + i);
System.out.println(" long: " + l);
System.out.println("文字型");
System.out.println(" char: " + c + ", " + c2);
System.out.println("浮動集数点数型");
System.out.println(" float: " + f);
System.out.println(" double: " + d);
System.out.println("論理値型(ブーリアン型)");
System.out.println(" boolean: " + bln);
}
}
C:\Java>javac TestVariable.java C:\Java>java TestVariable 符号付整数型 byte: 100 short: 200 int: 300 long: 12345678901 文字型 char: あ, A 浮動集数点数型 float: 3.14 double: 3.14 論理値型(ブーリアン型) boolean: true