こんにちは。くまごろーです。
最近、Java Silverの勉強を進めています。
Javaについては『スッキリわかるJava』の入門編、実践編を使って勉強してきましたが、
その中では出てこなかったようなコード、ルールがたくさんで中々苦戦しています。
というか、資格取得を目的に始めた勉強だけど、普通にためになってます。今まで適当に理解してたところが洗い出されてゆく(=_=)
今回は、かなりいい加減に考えていたJavaのデータ型・リテラル等についてまとめます。
本当は前回に引き続きコレクションクラスについて書こうと思ったけど、どうしてもこっちのテーマへの興味の方が勝ってしまって・・・
とにかく、始めます。
1 Javaのデータ型
データ型とはデータの種類を表す情報で、Javaには、プリミティブ型と参照型の2つのデータ型がある。
(1)プリミティブ型(基本データ型)
整数や浮動小数点数などの数値、真偽値、文字を扱う。
データ型 | 値 |
---|---|
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ビット単精度浮動小数点数 |
double | 64ビット倍精度浮動小数点数 |
(2)参照型
オブジェクト型、列挙型、配列型などがある。
(3)プリミティブ型と参照型の違い
プリミティブ型は値そのものを扱うのに対し、参照型はインスタンスへの参照(メモリのどこにインスタンスが保存されているか)を扱っている。
2 リテラルについて
リテラルとは、ソースコード中に記述する値のことで、Javaでは、整数・浮動小数点数・論理値・文字・文字列のリテラルがある。
(1)整数リテラル
整数を扱うリテラル。
ア 10進数は勿論、2進数・8進数・16進数でも表現できる。
10進数以外での表記方法は以下の通り。
進数 | 接頭辞 | サンプル |
---|---|---|
2進数 | 0b | 0b11(10進数の3) |
8進数 | 0 | 016(10進数の14) |
16進数 | 0x | 0xa(10進数の10) |
イ アンダースコア「_」を使用することもできる。(桁数の多い数値リテラルの見やすさを向上させる目的で導入されている)
アンダースコアの使用方法については、以下のルールが定められている。
・リテラルの先頭と末尾には記述できない
・記号の前後には記述できない。
<適切な例>
int a = 123_123; int b = 0b100_001011;
<不適切な例>
int c = _123_123; int d = 0x_c;
ウ 末尾に「L」または「l」を付加すると、long型であることを明示できる。
<例>
long = 1111111111111L;
ア 指数表現でも表すことができる。
<表記方法>
[仮数部]e[符号][指数部]
<例>
3.14e3 3.14 ×10の3乗 = 3140 2.12e-2 2.12×10のマイナス2乗 = 0.0212
イ 以下の接尾辞で、データ型を明示できる。
データ型 | 接尾辞 | 例 |
---|---|---|
float | Fまたはf | float a = 3.1415F |
double | Dまたはd | double b = |
(3)文字リテラル
文字列リテラルに対し、一つの文字を表現するリテラル。Javaでは、char型が文字リテラルを扱う。「'a'」のように、シングルクォーテーションで括って表記する。
- 文字だけでなく、文字コードも扱える。
Javaは「Unicode」を標準の文字コードに採用しているが、Unicodeは、「U+」の後ろに16進数の数値4桁を付加したコードで文字を表している。Javaではchar型の変数として、「¥u」の接頭辞の後ろに16進数4桁を付加することで、対応する文字を表示させることができる。
<例>
char a = '¥u30A2'; System.out.println(a); //「ア」を表示する
このように、16進数4桁の数値で文字を表現できるので、char型の変数には0~65535の数値を代入することが出来る。
<例>
char b = 66 System.out.println(b); //「B」を表示する
char型変数に代入できるものをまとめると、以下の通りになる。
・シングルクォーテーションで括った文字
・シングルクォーテーションで括った「¥u」から始まるUnicode番号
・0~65535までの数値(負の数は扱えない)
(4)文字列リテラル
複数の文字を集めたものを指す。「"abc"」の様にダブルクォーテーションで括って使用する。(「文字列」というが、「""」の様に、空文字を指定することもできる。)
(5)論理値リテラル
真偽をtrueまたはfalseで表現する。
(6)nullリテラル
nullもリテラルの一種。参照型変数が「何も参照しない」ことを表現するために用いられる。
3 識別子の命名規則について
Javaでは、変数やメソッド、クラスなどの名前のことを「識別子(Identifier)」と呼ぶ。以下のような命名規則がある。
・予約語を識別子として使用することはできない
・記号はアンダースコアと通貨記号のみ使用できる
・1文字目に数字は使用できない
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | short | static | strictfp | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
_(アンダースコア) |
<適切な例>
int _a = 1; int b$ = 2;
<不適切な例>
int 8a = 1; int ${a} = 2;
4 参考
リテラル | Java入門