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

Fah*_*kar 4 java int runtime-error runtimeexception

在Java中,我注意到我写的时候

int i = 99;
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,当我说

int i = 099;
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>
Run Code Online (Sandbox Code Playgroud)

在我的IDE中,我看到一个红点说 integer number too large: 099.

为什么不编译?是不是099相当于99?

Eng*_*uad 14

任何前导0s都会使Java将数字解释为八进制数.所以,010实际上8.

System.out.println(010);
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

8
Run Code Online (Sandbox Code Playgroud)

如你所知,8并且9不允许使用八进制数字.


Mak*_*oto 6

这是一个八进制数.八进制数字的前缀0是将它们与其他值(例如十进制和十六进制)区分开来.