Java 将long的max值指定给long类型会引发异常

Java 将long的max值指定给long类型会引发异常,java,long-integer,Java,Long Integer,第一行代码不会引发异常,但第二行(指定long的最大值)会引发RuntimeException。有人能澄清这一困惑吗?多谢各位 long val1 = Long.MAX_VALUE; long val2 = 9223372036854775807; 换成 long val2 = 9223372036854775807L; 如果没有L,它将被视为int文本,并且该数字对于int来说太高。将其更改为 long val2 = 9223372036854775807L; 如果没有L,它将被视为整型

第一行代码不会引发异常,但第二行(指定long的最大值)会引发RuntimeException。有人能澄清这一困惑吗?多谢各位

long val1 = Long.MAX_VALUE;
long val2 = 9223372036854775807;
换成

long val2 = 9223372036854775807L;
如果没有L,它将被视为int文本,并且该数字对于int来说太高。

将其更改为

long val2 = 9223372036854775807L;

如果没有L,它将被视为整型文字,而这个数字对于整型文字来说太高。

如果使用的是整型文字,则需要长型文字:

long val2 = 9223372036854775807L;
您需要在整型文字的末尾添加'l'或'l'以获得长文字


您可以在中阅读有关文字的内容。

如果使用的是整型文字,则需要长文字

long val2 = 9223372036854775807L;
您需要在整型文字的末尾添加'l'或'l'以获得长文字


您可以在中阅读文字。

在Java中键入数字时,编译器会自动将其读取为整数,这就是为什么当您键入(长)9223372036854775807(不在整数的范围内)时,它会抱怨9223372036854775807不是整数

要使其关闭,必须指定9223372036854775807L,后面加一个L,以告诉编译器该数字是一个长文本

在Java文档中讨论整数文本的地方可以找到更多信息

如果整型文字的后缀为ASCII,则其类型为long 字母L或L(ell);否则为int型(§4.2.1)


在Java中键入数字时,编译器会自动将其读取为整数,这就是为什么在键入(长)9223372036854775807(不在整数范围内)时,它会抱怨9223372036854775807不是整数

要使其关闭,必须指定9223372036854775807L,后面加一个L,以告诉编译器该数字是一个长文本

在Java文档中讨论整数文本的地方可以找到更多信息

如果整型文字的后缀为ASCII,则其类型为long 字母L或L(ell);否则为int型(§4.2.1)


在java中,默认情况下,数字文本被视为整数。若要指定long,必须添加l或l。但在这种情况下,您应该得到编译异常,因为int类型的文本9223372036854775807超出范围,而不是运行时。在java中,默认情况下,文本数被视为整数。要指定long,您必须添加l或l。但是在这种情况下,您应该得到编译异常,因为int类型的文本9223372036854775807超出范围,而不是运行时。