Java 変数のデータ型とラッパークラス

Javaの変数のデータ型とラッパークラスについてです。

目次

変数

変数とは、データを保持できる箱です。
変数には、決められたデータの種類(データ型)のデータのみ代入できます。

 

データ型

データ型とはデータの種類です。
Javaのデータ型は、基本型と参照型があります。

 

基本型

Javaのデータ型の基本型です。プリミティブ型、原始型とも呼ばれます。

分類 データ型 範囲  備考
整数 byte -128~127 1バイト
主に人でなくシステム側が扱う型
short -32,768~32,767 2バイト
ほとんど使用されない
int -2147483648~2147483647(約-21億~21億) 4バイト(使用推奨)
数値を扱うときに使用する
10は、int型の10を表す
long -9223372036854775808~9223372036854775807
(約-922京~約922京)
8バイト
intより大きい数値を扱うときに使用する
10Lは、long型の10を表す
浮動小数点 float 32ビット単精度浮動小数点数 4バイト
doubleより容量を使いたくないときに使用する
誤差あり
10Fは、float型の10を表す
double 64ビット倍精度浮動小数点数 8バイト(使用推奨)
小数を扱うときに使用する
誤差あり
10Dは、double型の10を表す
真偽 boolean true / false 1バイト
文字 char ¥u0000~¥uffff
Unicode(UTF-16)の文字に対応する数値コード
0~65535の範囲
2バイト
文字を表すコード

基本型の変数には、値が格納されます。

 

参照型

Javaのデータ型の参照型は、クラス、インターフェース、配列等があります。

参照型の変数には、参照先のアドレスが格納されます。
値は指定されたアドレスにあります。
参照先がない状態がnullです。

参照型はリファレンス型とも呼ばれます。

 

ラッパークラス

基本型に対応してそれぞれのラッパークラスがあります。

ラッパークラスは基本型にオブジェクトの機能が付いた(ラップした)クラスです。
基本型とラッパークラスどちらでも使える場面では基本型を優先します。
ラッパークラスはオブジェクトの生成が行われ(性能面)またnull値の考慮も必要のためです。

基本型 ラッパークラス
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

 

基本型からラッパーオブジェクトへの変換

基本型からラッパーオブジェクトへの変換は以下の方法があります。
・ボクシング変換を使う
・メソッドを使う
・コンストラクタを使う

ボクシング変換

ボクシング変換とは、基本型からラッパーオブジェクトへの変換が自動的に行われることです。

コード

7行目は、ボクシング変換で基本型からラッパーオブジェクトへ変換しています。
10行目は、IntegerクラスのvalueOfメソッドで基本型からラッパーオブジェクトへ変換しています。
13行目は、Integerクラスのコンストラクタで基本型からラッパーオブジェクトへ変換しています。

13行目のコンストラクタを使う方法は、Java9以降ではDeprecated(非推奨)です。

package test1;

public class Test1 {
    public static void main(String[] args) {
          
      // ボクシング変換
      Integer t1 = 1;
      
      // メソッドを使う
      Integer t2 = Integer.valueOf(1);
      
      // コンストラクタを使う
      Integer t3 = new Integer(1);
    }
}

 

ラッパーオブジェクトから基本型への変換

ラッパーオブジェクトから基本型へ変換は以下の方法があります。
・アンボクシング変換を使う
・メソッドを使う

アンボクシング変換

アンボクシング変換とは、ラッパーオブジェクトから基本型への変換が自動的に行われることです。

コード

7,11行目は、説明のためラッパーオブジェクトに値をセットしています。
8行目は、アンボクシング変換でラッパーオブジェクトから基本型へ変換しています。
12行目は、IntegerクラスのintValueメソッドでラッパーオブジェクトから基本型へ変換しています。

 package test1;

public class Test1 {
    public static void main(String[] args) {
          
      // アンボクシング変換
      Integer t1 = 1;
      int t2 = t1;
      
      // メソッドを使う
      Integer t3 = 1;
      int t4 = t3.intValue();
      
    }
}

関連の記事

Java クラスの変数のサンプル(メンバー変数/ローカル変数)
Java 変数の型変換のサンプル(基本型と参照型)
Java staticメソッドとstatic変数のサンプル

プログラムでつまったらteratailに登録して質問しましょう!↓↓↓

△上に戻る