【发布时间】:2014-05-27 05:15:50
【问题描述】:
在我的实际项目中偶然发生的这里是我修改后的小程序。
我不明白为什么它会输出 10?
public class Int
{
public static void main(String args[])
{
int j=012;//accidentaly i put zero
System.out.println(j);// prints 10??
}
}
之后,我放了两个零,输出仍然是 10。
然后我将 012 更改为 0123 现在输出 83?
谁能解释一下原因?
【问题讨论】:
-
1是十进制,01是八进制,0x1是十六进制,0b1是二进制(在 Java SE 7 中)编辑:'1'是字符,"1"是字符串. -
另外,您可能想知道
08是compilation error -
@GrijeshChauhan 谢谢您的回复。我宁愿接受您的评论作为答案。 :) 你的解释很完美,链接+1。
-
因为 Java 中没有十进制文字(base-10)前缀,所以不能以前导零开始十进制值。
-
它发生在 kotlin 上。我创建了一个带有构造函数的类,名为 class codeCollection(var code:Int = 023){} Int 给了我错误!!。就像“)”不见了。现在我知道问题出在哪里了。
标签: java numbers integer literals