Java 在长变量声明中使用字母L
当我使用上面的语句时,我没有得到一个错误(我没有在末尾使用Java 在长变量声明中使用字母L,java,long-integer,variable-declaration,Java,Long Integer,Variable Declaration,当我使用上面的语句时,我没有得到一个错误(我没有在末尾使用l),但是当我使用下面的语句时,我得到了这个错误: int类型的文字32444超出范围 如果我使用longl2=32444l,则没有错误 这是什么原因?长变量不强制使用l。3244444被解释为文字整数,但不能放入32位int变量中。它需要是一个文字长值,因此它需要一个l或l: long l2 = 3244444444; 更多信息: ,特别是默认值和文本部分 请注意,当赋值给长变量时,int文本将自动加宽为long,但在表示不可用的值
l
),但是当我使用下面的语句时,我得到了这个错误:
int类型的文字32444超出范围
如果我使用longl2=32444l代码>,则没有错误
这是什么原因?长变量不强制使用l。3244444
被解释为文字整数,但不能放入32位int
变量中。它需要是一个文字长值,因此它需要一个l
或l
:
long l2 = 3244444444;
更多信息:
- ,特别是默认值和文本部分
请注意,当赋值给长变量时,int文本将自动加宽为long,但在表示不可用的值时,需要使用显式长文本
大于Integer.MAX_值(2147483647)
(或)
小于整数值(-2147483648)
:
但我声明了,它是如何解释的integer@PSR变量为整数,文字值解释为
int
,当分配给long
变量时,它将成为long
值。有关更多信息,请参阅我答案中的链接。
long l2 = 3244444444;
long l2 = 3244444444l; // or 3244444444L
long x1 = 12; //OK
long x2 = 2147483648; // not OK! That's not a valid int literal
long x3 = 2147483648L; // OK