Java で数値を表す整数型プリミティブ・データタイプ
Java ではオブジェクトではない基本的なデータ型がいくつかあります。これを、プリミティブデータタイプ (primitive data types) といいます。
オブジェクトを生成するときは new というキーワードで作ります。しかし、プリミティブのデータタイプを使うときは、new を使う必要はありません。
数値を表す整数型として分類されるプリミティブデータタイプとしては、次の4種類があります。
データ型 | 意味 | 既定値 |
---|---|---|
byte | 8ビットの符号付整数 -128 から 127 までを表します。 | 0 |
short | 16ビットの符号付整数 -32,768 から 32,767 までを表します。 | 0 |
int | 32ビットの符号付整数 -2,147,483,648 から 2,147,483,647 までを表します。 | 0 |
long | 64ビットの符号付整数 -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 までを表します。 | 0L |
この他、整数型として分類されているプリミティブデータタイプとしては char 型があります。char は整数型ですが文字を表します。文字を表すコードを整数値で保持しているために、文字も整数型になっています。 char 型については「Java の文字型 (char)」をみてください。
Java の整数型の既定値
Java の整数型の既定値は 0 として定義されています。つまり、変数の初期化を行わない場合は、整数型の既定値は 0 になります。
Java の整数型変数の初期化
プリミティブデータタイプのローカル変数を使うときには、使う前に初期化が必要です。初期化をしないままその変数を利用するコードパスがあると、コンパイル時にエラーとなります。
package com.keicode.java.test;
public class TestApp {
public static void main(String[] args) {
int i = 123; // このように初期化が必要
System.out.printf("i = %d", i);
}
}
しかし、クラスのフィールドとする場合は明示的な初期化は不要です。
package com.keicode.java.test;
public class MyInt {
int i; // デフォルト値が使われる
public void printI() {
System.out.printf("i=%d", i);
}
}
こうして定義したMyInt クラスのインスタンスを作成して printI() を呼ぶと i=0 と出力されます。
package com.keicode.java.test;
public class TestApp {
public static void main(String[] args) {
MyInt i = new MyInt();
i.printI(); // i=0
}
}
Java の整数型の最大値と最小値
Java の整数型の最大値と最小値は上の表に書いた通りです。
Java のプログラムの中でそれらの最大値と最小値を取得するにはどうしたら良いでしょうか。
プリミティブデータには、それぞれの型に対応するデータタイプラッパークラスというのがあります。データタイプラッパーを使うと、オブジェクトとして整数値型を使うことができます。
データタイプラッパークラスには、最小値と最大値を表す定数として MIN_VALUE と MAX_VALUE があります。 例えば int 型の最大値は Integer.MAX_VALUE として取得できます。
試しに byte、 short、 int、 long それぞれの最大値と最小値を出力してみましょう。
public class TestApp {
public static void main(String[] args) {
System.out.println("* Byte");
System.out.println(" Min: " + Byte.MIN_VALUE);
System.out.println(" Max: " + Byte.MAX_VALUE);
System.out.println("* Short");
System.out.println(" Min: " + Short.MIN_VALUE);
System.out.println(" Max: " + Short.MAX_VALUE);
System.out.println("* Integer");
System.out.println(" Min: " + Integer.MIN_VALUE);
System.out.println(" Max: " + Integer.MAX_VALUE);
System.out.println("* Long");
System.out.println(" Min: " + Long.MIN_VALUE);
System.out.println(" Max: " + Long.MAX_VALUE);
}
}
この実行結果は次のようになります。
* Byte
Min: -128
Max: 127
* Short
Min: -32768
Max: 32767
* Integer
Min: -2147483648
Max: 2147483647
* Long
Min: -9223372036854775808
Max: 9223372036854775807
以上、Java の整数型について説明しました。