Javaの基本データ型とその特性

基本データ型の概要

Javaには8つの基本データ型が存在し、これらはアプリケーション開発において最も基礎となる構成要素です。

1. 数値型データ
  • int型: 32ビット符号付き整数で、範囲は-2,147,483,648から2,147,483,647までです。初期値は0です。
    int value1 = 15;
  • byte型: 8ビット符号付き整数で、-128から127の範囲を持ちます。メモリ使用量を削減したい配列などで利用されます。初期値は0です。
    byte value2 = 25;
  • short型: 16ビット符号付き整数で、範囲は-32,768から32,767です。int型の半分のサイズでメモリ効率が良いです。初期値は0です。
    short value3 = 35;
  • long型: 64ビット符号付き整数で、非常に大きな数値を扱う場合に使用します。数値の末尾に"L"を付ける必要があります。初期値は0Lです。
    long value4 = 45L;
2. 浮動小数点型
  • float型: 単精度32ビット浮動小数点数で、精度が求められない計算に適しています。数値末尾に"F"が必要です。初期値は0.0fです。
    float value5 = 60.2F;
  • double型: 倍精度64ビット浮動小数点数で、デフォルトの浮動小数点型です。金融計算などではBigDecimalクラスの使用が推奨されます。初期値は0.0dです。
    double value6 = 3.14159265359;
3. 文字型と文字列
  • char型: 16ビットUnicode文字で、'\u0000'から'\uffff'の範囲を持ちます。シングルクォートで囲みます。
    char letter1 = '日';
    char letter2 = '本';
    char letter3 = 'B';
  • String型: Javaではクラスとして実装されており、複数の文字を扱います。ダブルクォートで囲みます。
    String text = "developer";
4. 論理型
  • boolean型: 真偽値(trueまたはfalse)を表現します。条件判定やフラグ管理に使用されます。初期値はfalseです。
    boolean flag = true;

数値表現の拡張知識

Javaでは異なる基数による数値表現が可能です:

int decimal = 15;     // 10進数
int octal = 017;      // 8進数 (0で始まる)
int hex = 0x1F;       // 16進数 (0xで始まる)

System.out.println(decimal); // 出力: 15
System.out.println(octal);   // 出力: 15
System.out.println(hex);     // 出力: 31

浮動小数点数の注意点

浮動小数点数には精度の限界があるため、直接的な比較は避けるべきです:

float singlePrecision = 0.1f;
double doublePrecision = 1.0/10;

System.out.println(singlePrecision);     // 0.1
System.out.println(doublePrecision);     // 0.1
System.out.println(singlePrecision == doublePrecision); // false

文字型の内部表現

すべての文字は内部的に数値として処理されています:

char firstChar = 'x';
char secondChar = '日';
char unicodeChar = '\u0078'; // 'x'のUnicode

System.out.println(firstChar);           // x
System.out.println((int)firstChar);      // 120
System.out.println(secondChar);          // 日
System.out.println((int)secondChar);     // 26085
System.out.println(unicodeChar);         // x

エスケープシーケンス

特殊な文字を表現するためにエスケープシーケンスを使用します:

System.out.println("Hello\tWorld"); // タブ区切り
System.out.println("Hello\nWorld"); // 改行

String obj1 = new String("example text");
String obj2 = new String("example text");
System.out.println(obj1 == obj2); // false (参照比較)

String literal1 = "example text";
String literal2 = "example text";
System.out.println(literal1 == literal2); // true (文字列プール)

型変換の仕組み

Javaでは自動変換と強制変換の2種類の型変換があります:

// 強制型変換 (大きい型→小さい型)
int largeValue = 130;
byte smallValue = (byte) largeValue; // オーバーフロー発生
System.out.println(largeValue); // 130
System.out.println(smallValue); // -126

// 自動型変換 (小さい型→大きい型)
int source = 130;
double target = source;
System.out.println(source); // 130
System.out.println(target); // 130.0

// 小数点の切り捨て
System.out.println((int)25.9);   // 25
System.out.println((int)-47.3f); // -47

// 文字と数値の変換
char character = 'c';
int numeric = character + 1;
System.out.println(numeric);        // 100
System.out.println((char)numeric);  // d

タグ: Java データ型 型変換 基本型 プログラミング基礎

9月15日 23:19 投稿