Javaのデータ型についてです。
目次
データ型 | データ型とは / 基本型とは / 参照型とは |
データ型の一覧 | |
char型とString型の違い |
データ型とは
- データ型とはデータの種類です。
- Javaのデータ型は、基本型と参照型があります。
基本型とは
- 基本型の変数には、値が格納されます。
- 変数とは、int a = 0;とあったときのaです。0が値です。
- 基本型は、プリミティブ型、原始型とも呼ばれます。
データ型の一覧
分類 | データ型 | 範囲 | 備考 |
---|---|---|---|
整数 | 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 0~65535の範囲 |
2バイト Unicode(UTF-16)の文字に対応する数値コード 文字をシングルコーテションで括る |
整数と実数の違い
整数は数値で小数点がないものです。データ型ではbyte,short,int,longです。
実数は数値で小数点があるものです。データ型ではfloat,doubleです。実数型とも呼ばれます。
数値に区切り文字を使用する
桁数の多い数値を見やすくするために区切り文字としてアンダースコア(_)を使用できます。
実際の値への影響はありません。
int test1 = 1_000_000;
System.out.println(test1); // 1000000
int test2 = 1_0000_00;
System.out.println(test2); // 1000000
1行目は、数値を3桁ごとに区切っています。
4行目は、数値が3桁ごとに区切られていませんが実際の値には影響していません。
intの最大値に1を足した場合
エラーにはなりませんが、値がマイナスになってしまうので注意が必要です。
int test1 = 2147483647 + 1;
System.out.println(test1); // -2147483648
浮動小数点の計算は丸め誤差に注意
浮動小数点の計算では丸め誤差が発生するので注意が必要です。
double a = 0.1;
double b = 0.2;
System.out.println(a + b); // 0.30000000000000004
金額の計算等の正確性を要求される計算ではBigDecimalクラスを使用します。
最大値と最小値の定数
各データ型の最大値と最小値は、MAX_VALUEとMIN_VALUEで取得できます。
※浮動小数点除く。
byte testByte1 = Byte.MAX_VALUE;
System.out.println(testByte1); // 127
byte testByte2 = Byte.MIN_VALUE;
System.out.println(testByte2); // -128
int testInt1 = Integer.MAX_VALUE;
System.out.println(testInt1); // 2147483647
int testInt2 = Integer.MIN_VALUE;
System.out.println(testInt2); // -2147483648
int testChar1 = (int)Character.MAX_VALUE;
System.out.println(testChar1); // 65535
int testChar2 = (int)Character.MIN_VALUE;
System.out.println(testChar2); // 0
参照型とは
- Javaのデータ型の参照型は、クラス、インターフェース、配列等があります。
- 文字列を代入するString型も参照型です。
- 参照型の変数には、参照先のアドレスが格納されます。
- 値は指定されたアドレスにあります。
- 参照先がない状態がnullです。
- 参照型はリファレンス型とも呼ばれます。
char型とString型の違い
char型はシングルコーテションで括ります。String型はダブルコーテーションです。
package test1;
public class Test1 {
public static void main(String[] args) {
char a = 'あ';
String b = "あ";
}
}
6行目は、シングルコーテーションで括った文字をchar型の変数に代入しています。
7行目は、ダブルコーテーションで括った文字をString型の変数に代入しています。
char型の変数にダブルコーテーションで括った文字を代入しようとするとコンパイルエラーになります。
関連の記事
Java ラッパークラスとは (intとIntegerの違い)
Java valueOf 数値と文字列を変換する
Java クラスで使われる用語のまとめ(メンバー変数等)