public class Main {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
System.out.println(max + 1);
}
}
選択肢
- あなたの回答
- 正解
正解
B. -2147483648
詳細解説
int 型は 32 ビットの二の補数表現で、最大値 2147483647 を超えると桁が折り返して最小値 -2147483648 になります。Java はオーバーフローで例外をスローしません。
なぜ他の選択肢が違うのか
- int の最大値を超えると long への自動拡張はされず折り返します。
- Java はオーバーフローを例外ではなく黙って折り返す仕様です。
- 実行時エラーにもなりません。
罠ポイント
Java の整数演算はオーバーフロー検出をしません。大きな数値を扱う場合は long や BigInteger を使いましょう。