プリミティブ型

Javaのプリミティブ型は8種類。各型の値域(要約)やデフォルト値、ラッパー型の話など。

メニュー

Javaのプリミティブ型は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
~ 9,223,372,036,854,775,807

±約922京3372兆

0

float

±1.4E-45 ~ ±3.4028235E+38

IEEE単精度32ビット浮動小数点

0.0

double

±4.9E-324
~ ±1.7976931348623157E+308

IEEE倍精度64ビット浮動小数点

0.0

ラッパー型

プリミティブ型にはその値をオブジェクトとして扱えるいわゆるラッパー型というものがある。

プリミティブ型は参照型に比べて便利な側面もあるが、参照型ではないが故に次のような不便さもある。

  • nullを代入できない

  • 参照型しか受け入れてくれないライブラリなどで困る

例えばintでListを作りたいと思った場合、List<int>は作れない。int用のListを定義するのも一つの手段であるが汎用性にかけるのでintに対応するラッパー型のIntegerを用いれば現行のListをそのまま利用できる。というような形でプリミティブ型をオブジェクトとして扱えるラッパー型が存在する。

プリミティブ型 対応するラッパー型

boolean

java.lang.Boolean

char

java.lang.Character

byte

java.lang.Byte

short

java.lang.Short

int

java.lang.Integer

long

java.lang.Long

float

java.lang.Float

double

java.lang.Double

ラッパー型といっても標準APIのjava.langパッケージに含まれるクラスなので普通に利用できる。クラス自体はプリミティブの値をラップして、いくつかメソッドも提供してくれる。オートボクシングなどで変換されることがあるので普通のクラスよりは少し特殊なクラス。