【Java】変数のラッパークラスと整数型の最小値・最大値

【Java】変数のラッパークラスと整数型の最小値・最大値プログラミングの知識
プログラミングの知識

今回はラッパークラスについて、普通の変数型との違いや、byteshortintlong型(基本データ型)の最小値と最大値についてMAX_VALUEMIN_VALUEから求めてみます。

スポンサーリンク

変数の型とラッパークラス

まず、変数(基本データ型・参照型)の違いについてまとめてみます。

変数とは、データの内容を記憶する役割を持ちます。変数には色々な型が存在しており、その型の種類を大別すると基本データ型(プリミティブ型)と参照型(リファレンス型)に分かれます。

基本データ型は数字や文字の値を直接保持していますが、参照型は直接データを保持しておらず、参照先を参照することでデータを取り扱っています。

ここで、基本データ型はメソッドを持っていないという特徴があります。

参照型はインスタンス宣言によりインスタンス化することで、メソッドを呼び出してデータを処理することができるのです(オブジェクトとして扱うことができる)。

そこで、基本データ型でもオブジェクトとして扱うことができるように用意されたものがラッパークラスという訳です。ここでラッパーとはwrapper(覆うもの)を意味しています。

ラッパークラスの一覧

ラッパークラスは基本データ型をオブジェクトとして扱うためのクラスです。ラッパークラスの一覧を表でまとめてみます。

基本データ型ラッパークラス
boolean Boolean
byteByte
charCharacter
intInteger
longLong
shortShort
doubleDouble
floatFloat
ラッパークラスの一覧

ラッパークラスの使い方

例として、Integerクラスの使い方を紹介します。下に記述例を示します。

// int型の宣言
int i = 10;
// ラッパークラスのインスタンス化
Integer integer1 = new Integer(i);
// 簡略化(オートボクシング)
Integer integer2 = i;

基本データ型からラッパークラスへの自動変換をオートボクシング(Autoboxing)といいます。反対にラッパークラスから基本データ型への自動変換をアンボクシング(Unboxing)といいます。

その他のクラスも上と同様に扱えます。

ラッパークラスを使うメリット

ラッパークラスで実現できることにメソッドを使えることが挙げられます。

例えば、数値を文字列に変換するtoStringメソッドは、int型の変数では使えませんがInteger型で使用することができます。

整数型の最小値・最大値

MAX_VALUEMIN_VALUEで変数の最大値と最小値を取得することができます。例としてMAX_VALUEの記述例を示します。

// MAX_VALUEの記述例(int型)
Integer.MAX_VALUE;

それぞれのクラスの最大値・最小値を以下に示します。

基本データ型ラッパークラス最大値最小値
byteByte127-128
shortShort32767-32768
intInteger2147483647-2147483648
longLong9223372036854775807-9223372036854775808
整数型のラッパークラスと範囲

byte型はバイナリデータ(0と1で表現されているデータ)を扱うための型なので、整数を扱う場合はshortintlong型を使いましょう。

また、最大値・最小値を超えるとオーバーフロー(桁あふれ)が発生し、正負が反転した最大値になります。例えばint型では下の様になります。

/* int型のオーバーフロー */
int max = 2147483647 + 1 // -2147483648
int min = -2147483648 - 1 // 2147483647

MAX_VALUEとMIN_VALUEの使用例

MAX_VALUEMIN_VALUEの使用例をサンプルコードで紹介します。まずサンプルコードを下に示します。

  • サンプルコード
public class ValueTest {
  public static void main(String[] args) {
    // byteの最大値と最小値を出力する
    System.out.println("byteの最大値:" + Byte.MAX_VALUE);
    System.out.println("byteの最小値:" + Byte.MIN_VALUE);
    // shortの最大値と最小値を出力する
    System.out.println("shortの最大値:" + Short.MAX_VALUE);
    System.out.println("shortの最小値:" + Short.MIN_VALUE);
    // intの最大値と最小値を出力する
    System.out.println("intの最小値:" + Integer.MAX_VALUE);
    System.out.println("intの最大値:" + Integer.MIN_VALUE);
    // longの最大値と最小値を出力する
    System.out.println("byteの最小値:" + Long.MAX_VALUE);
    System.out.println("byteの最大値:" + Long.MIN_VALUE);
  }
}
  • 出力結果
byteの最大値:127
byteの最小値:-128
shortの最大値:32767
shortの最小値:-32768
intの最小値:2147483647
intの最大値:-2147483648
byteの最小値:9223372036854775807
byteの最大値:-9223372036854775808

それぞれの整数型の最大値と最小値が出力されました。


今回はラッパークラスと整数型の最小値・最大値ついてまとめてみました。以上で記事を終わりにします。

スポンサーリンク
Dim雑記