在长变量声明中使用字母L.

时间:2013-07-19 04:43:26

标签: java long-integer variable-declaration

long l2 = 32;

当我使用上面的语句时,我没有收到错误(我最后没有使用l),但是当我使用下面的语句时,我收到此错误:

  

int类型的文字3244444444超出范围

long l2 = 3244444444;

如果我使用long l2 = 3244444444l;,则没有错误。

这是什么原因?对于长变量,使用l不是必需的。

2 个答案:

答案 0 :(得分:6)

3244444444被解释为文字整数,但不能适合32位int变量。它必须是文字长值,因此最后需要lL

long l2 = 3244444444l; // or 3244444444L

更多信息:

答案 1 :(得分:0)

请注意,虽然在分配给long变量时int文字将自动加宽为long,但在表达

值时,您需要使用显式长文字。
  1. 大于Integer.MAX_VALUE (2147483647)

    (或)

  2. 小于Integer.MIN_VALUE (-2147483648)

    long x1 = 12; //OK
    long x2 = 2147483648; // not OK! That's not a valid int literal
    long x3 = 2147483648L; // OK