変数とデータ型応用問題

以下のコードを実行した場合、変数resultに格納される値はどれですか? ```java byte b = 127; b = (byte)(b + 1); System.out.println(b); ```

A.128
✗ byte型の最大値は127です。127に1を加えるとオーバーフローが発生し、-128になります。128という値は出力されません。
B.-128← 正解
✓ 正解です。byte型の範囲は-128~127です。127+1=128となりますが、byte型でのオーバーフロー時に-128にラップアラウンドします。
C.127
✗ キャスト操作により値は変更されます。元の値127のままではなく、オーバーフローにより-128になります。
D.コンパイルエラーが発生する
✗ (byte)キャストは正しい文法であり、コンパイルエラーは発生しません。ただし実行時にオーバーフローが発生します。

Oracle Certified Java Programmer, Bronze SE の問題一覧