数字太大Java中的异常

Eng*_*eer 0 java

我想打印这个整数

 int a=07;
System.out.println("Value of a is "+a);
Run Code Online (Sandbox Code Playgroud)

它运行并显示value of a is 7,但当我改变a的值

 int a=08;
System.out.println("Value of a is "+a);
Run Code Online (Sandbox Code Playgroud)

然后它显示 integer number too large

我不知道为什么......任何人都可以告诉我吗?

Osc*_*rez 8

这是因为JVM将此数字解释为octal,并且8八进制中没有符号.

任何以数字开头的数字0都是八进制数.