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にプリミティブ型がなければ本当にオブジェクト指向だと思います。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント