int i = 99正在工作但是int i = 099无效

时间:2012-07-13 19:34:36

标签: java int runtime-error runtimeexception

在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?

2 个答案:

答案 0 :(得分:14)

任何前导0都会使Java将数字解释为八进制数。因此,010实际上是8

System.out.println(010);

<强>输出:

8

如您所知,八进制数中不允许89

答案 1 :(得分:6)

那是八进制数。八进制数字以0为前缀,将它们与其他值(例如十进制和十六进制)区分开来。