分類 | データ型 | 説明 |
---|---|---|
論理値 | boolean | trueかfalse |
文字 | char | 16ビット 符号なし Unicode UTF-16 コードユニット |
整数※1 | byte | 8ビット 符号付き 2の補数表現の整数 |
short | 16ビット 符号付き 2の補数表現の整数 | |
int | 32ビット 符号付き 2の補数表現の整数 | |
long | 64ビット 符号付き 2の補数表現の整数 | |
浮動小数点数 | float | 32ビット IEEE754 浮動小数点数 |
double | 64ビット IEEE754 浮動小数点数 |
※1 符号なし整数は、存在しません。
基本データ型には、それぞれラッパークラスが用意されています。
分類 | 基本データ型 | ラッパークラス |
---|---|---|
論理値 | boolean | Boolean |
文字 | char | Character |
整数 | byte | Byte |
short | Short | |
int | Integer | |
long | Long | |
浮動小数点数 | float | Float |
double | Double |
ラッパークラスの名前は、基本データ型の型名の最初の文字を大文字にしたものとなっています。例外はcharとintで、これらは正式名称の最初を大文字にしたものです。
リテラルとは、各型の定数値の記述方法です。
リテラル | 説明 |
---|---|
参照リテラル | nullのみ |
ブール値リテラル | trueとfalse |
整数リテラル | 8進数、10進数および16進数
|
浮動小数点リテラル | 10進数小数点 (.) を持つ |
文字リテラル | シングルクォート (') で囲んだUnicode文字 |
文字列リテラル | ダブルクォート (") で囲んだUnicode文字列 |
クラスリテラル | 型を表すClassクラスのインスタンス。型名の後に.classを付けることで取得できる |
数値の末尾が「L」または「l」ならば、long型となります。さもなくばint型とみなされます。
short型に代入されるとき、その数値がshort型の範囲内ならば、それはshort型となります。byte型も同様です。
int i = 10; long l = 10L; byte b1 = 127; // OK byte b2 = 128; // ERROR : Type mismatch: cannot convert from int to byte short s1 = 32767; // OK short s2 = 32768; // ERROR : Type mismatch: cannot convert from int to short
long l1 = 10; // OK long l2 = 10L; // OK // ラッパークラス Long l3 = 10; // ERROR : Type mismatch: cannot convert from int to Long Long l4 = 10L; // OK Long l5 = new Long(10); // OK
文字列リテラルは、Stringクラスのオブジェクトへの参照です。
Object str = "ABC";
System.out.println( str instanceof String ); // true
instanceof演算子は、左辺の式が右辺の式の型名と代入互換な参照型であれば、trueを返します。15.20.2. Type Comparison Operator instanceof - Chapter 15. Expressions
Object a = 1.0; boolean x1 = a instanceof Object; // true boolean x2 = a instanceof Integer; // false boolean x3 = a instanceof Double; // true // boolean x4 = a instanceof double; // ERROR : Syntax error on token "double", Dimensions expected after this token