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 将该数字解释为八进制数。所以,010其实是8

System.out.println(010);

输出:

8

如您所知,8不允许9使用八进制数。

于 2012-07-13T19:36:23.373 回答
6

那是一个八进制数。八进制数字带有前缀,0以将它们与十进制和十六进制等其他值区分开来。

于 2012-07-13T19:35:42.090 回答