Oracle Java Programmer,Silver SE11認定資格取得に向けて学習を開始しました。
その中で出てきたデータ型に関するまとめを行いたいと思います。
間違っている等、指摘事項あればご教示いただけると幸いです。
プリミティブ型
型 | 分類 | |
---|---|---|
boolean | 論理型 | True/False |
char | 文字型 | 16ビットUnicode,¥u0000~¥uFFFF |
byte | 整数型 | 8ビット整数,-128~127 |
short | 整数型 | 16ビット整数,-32768~32767 |
int | 整数型 | 32ビット整数,-2147483648~2147483647 |
long | 整数型 | 64ビット整数,-9223372036854775808~9223372036854775807 |
float | 浮動小数点型 | 32ビット単精度浮動小数点型 |
float | 浮動小数点型 | 64ビット倍精度浮動小数点型 |
参照型
参照型にはクラス型、インターフェース型、配列型と言ったものがあります。
プリミティブ型のリテラル
リテラルとは、ソースコードに記述する値の事です。
Javaのリテラルは、デフォルトでは整数はint型、浮動小数点数値はdouble型、真偽値であればboolean型、文字であればchar型です。
データ型を明示したいとき(整数、浮動小数点数値)
データ型を明示したい時は値の最後につける接尾辞や値の先頭につける接頭辞を使います。
- long型・・・値の後ろにLまたはlをつける。
- float型・・・値の後ろにFまたはfをつける。
型というよりは表記の方法ですが…
- 2進数で記述する・・・値の先頭に0bをつける。
- 8進数で記述する・・・値の先頭に0をつける。
- 16進数で記述する・・・値の先頭に0xをつける。
byte型やshort型にはありません。
アンダースコア(_)を使った数値表記
Java SE7から導入されたようです。あくまで見やすさ向上のためです。
ただし、
-リテラルの先頭と末尾には記述できない
-記号の前後には記述できない
リテラルの先頭と末尾には記述できない
記号の前後には記述できない
具体例
double a = 123_4567.89;
System.out.println(a);
とやると、1234567.89と表示されます。3桁区切りでなくても全然オッケーらしいです。
double a = 123_4567_.89;
System.out.println(a);
とやるとエラーになります。
文字リテラル
char型は文字1文字を表すデータ型で、'a'のようにシングルクォーテーションで囲わないといけません。
ちなみに文字列は"neko"のようにダブルクォーテーションで囲わないといけません。
Unicodeによる表記では\uの接頭辞の後に16進数4桁で表記します。
char a = '\u1111';
System.out.println(a);
ᄑ
と出力されました。読めないw
あれ?そういえばString型は?
java.langパッケージに所属するjava.lang.Stringクラスを使用している形です。
特例としてnew演算子を利用しなくても" "で囲めばStringインスタンスを利用できます。
参考文献
スッキリわかるJava入門
徹底攻略Java SE11 Silver問題集