java中的Long数据类型出错

时间:2011-08-25 20:30:00

标签: java

实际上我的系统将Long.MAX_VALUE设为9223372036854775807

但是当我写这样的程序时,

package hex;

/**
 *
 * @author Ravi
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        long x = 9223372036854775807;

        System.out.println(x);

    }

}

我收到编译时错误。任何人都可以解释原因吗?

4 个答案:

答案 0 :(得分:8)

没有后缀,它是一个int常量(并且溢出),而不是长常量。最后坚持L

答案 1 :(得分:4)

你可能想尝试这样使用:

long x = 9223372036854775807L;

最后没有 L ,您将声明int

答案 2 :(得分:3)

9223372036854775807是一个int字面值,它太大而无法放入int
int字面值分配给long这一事实没有任何区别。

您需要使用long后缀创建L文字。

答案 3 :(得分:0)

如果您未指定数字文字的类型,则假定为int。您需要通过在数字末尾添加“l”或“L”(更好,因为“l”看起来像1)来指定您想要long

long x = 9223372036854775807L;

而不是:

long x = 9223372036854775807;