Java long类型的文本004055158L超出范围

Java long类型的文本004055158L超出范围,java,long-integer,Java,Long Integer,我想知道为什么编译错误“超出范围” Long l =004055158L;//giving The literal 004055158L of type long is out of range. Long l =404055158L;//no compilation error 它超出范围,因为前导为0的数字文字被视为八进制数(基数8),其中数字8无效 改成 Long l = 004055157L; 将删除编译错误。当然,除非你真的想要一个八进制数,否则前导0是没有意义的。你说得对。谢谢

我想知道为什么编译错误“超出范围”

Long l =004055158L;//giving The literal 004055158L of type long is out of range.

Long l =404055158L;//no compilation error

它超出范围,因为前导为0的数字文字被视为八进制数(基数8),其中数字8无效

改成

Long l = 004055157L;

将删除编译错误。当然,除非你真的想要一个八进制数,否则前导0是没有意义的。

你说得对。谢谢