在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?
答案 0 :(得分:14)
任何前导0
都会使Java将数字解释为八进制数。因此,010
实际上是8
。
System.out.println(010);
<强>输出:强>
8
如您所知,八进制数中不允许8
和9
。
答案 1 :(得分:6)
那是八进制数。八进制数字以0
为前缀,将它们与其他值(例如十进制和十六进制)区分开来。