Javaのプリミティブ型とラッパークラスについて

Javaのプリミティブ型とラッパークラスについて

Javaでは、int,doubleなどプリミティブ型という型があります。

これに対してjava.lang.Integer型をint型のラッパークラスと言います。

プリミティブ型の特徴としてnullは入りません。

int i = null; // エラーとなります

プリミティブ型はnullを入れることができません。

int型には整数のみ値を代入することができます。

小数点が入る場合はdoubleかfloatを使用します。

オートボクシング

int i = 1;
Integer j = 1; // こんなことができる(オートボクシング)

プリミティブ型の変数iをInteger型のjに代入することができます。これをオートボクシングと言います。

アンボクシング

Long i = Long.valueOf(100);
long j = i; // こんなことができる(アンボクシング)

Longクラスの変数iをプリミティブ型のlong型変数jに代入することもできます。

これはオートボクシングに対してアンボクシングと言います。

知らず知らずのうちにオートボクシングとかアンボクシングを使っているはず

Integer i = Integer.parseInt("3");

parseIntメソッドは文字列をint型にして返します。上記だとparseIntはint型で3という値を返します。が、受ける型はIntegerです。オートボクシングがあるからこれは動作します。

valueOfとparseIntの違い

IntegerクラスのスタティックメソッドのvalueOfとparseIntの違いですが、これは以下の通りです。

=^_^= (=^・^=) ( *´艸`)
メソッド valueOf parseInt
戻り値 Integer int

Javaにプリミティブ型がなければ本当にオブジェクト指向だと思います。

コメント

タイトルとURLをコピーしました