4

Javaでは、私が書くときに気づきました

int i = 99;

それはうまくいきます。しかし、私が言うとき

int i = 099;

例外が発生します:

java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>

私のIDEでは、赤い点が表示されます integer number too large: 099

なぜこれがコンパイルされないのですか?099は99に相当しませんか?

4

2 に答える 2

14

先頭に0sがあると、Javaはその数値を8進数として解釈します。だから、010実際には8です。

System.out.println(010);

出力:

8

そしてご存知のように、8進数では許可されていません89

于 2012-07-13T19:36:23.373 に答える
6

これは8進数です。010進数や16進数などの他の値と区別するために、8進数の接頭辞が付いています。

于 2012-07-13T19:35:42.090 に答える