プリミティブ型
Javaのプリミティブ型は8種類。各型の値域(要約)やデフォルト値、ラッパー型の話など。
Java | Java SE 8 |
Javaのプリミティブ型は次の8種類。
型 | 値域 | 値域(要約) | デフォルト値 |
---|---|---|---|
boolean |
true,false |
false |
|
char |
\u0000~\uFFFF |
\u0000 |
|
byte |
-128~127 |
±約120 |
0 |
short |
-32,768 ~ 32,767 |
±約3万2000 |
0 |
int |
-2,147,483,648 ~ 2,147,483,647 |
±約21億4000万 |
0 |
long |
-9,223,372,036,854,775,808 |
±約922京3372兆 |
0 |
float |
±1.4E-45 ~ ±3.4028235E+38 |
IEEE単精度32ビット浮動小数点 |
0.0 |
double |
±4.9E-324 |
IEEE倍精度64ビット浮動小数点 |
0.0 |
ラッパー型
プリミティブ型は単純な値のようなものなので計算はできるが、参照型では当たり前にできることができない。
-
nullを代入できない
-
メソッドを定義できない
-
参照型しか受け入れてくれない(オーバーロードしてくれていない)ライブラリなどで困る
例えばintでListを作りたいと思った場合List<int>が作れない。なので対応するラッパー型のjava.lang.Integerを用いることでList<Integer>として対応できる。
このようにプリミティブ型にはその値をオブジェクトとして扱えるいわゆるラッパー型というものがある。ラッパー型は全プリミティブ型に対応する形で存在する。
プリミティブ型 | 対応するラッパー型 |
---|---|
boolean |
|
char |
|
byte |
|
short |
|
int |
|
long |
|
float |
|
double |
ラッパー型はオートボクシングなどで自動で変換されることがあるので普通のクラスよりは少し特殊なクラス。といっても標準APIのjava.langパッケージに含まれるクラスなので普通に利用できる。
Appendix A: 改訂履歴
-
v1.0, 2013-09-18: 初稿