书上说int的存储了空间是4字节取值范围是 -2 147 483 648 到 +2 147 483 648 
long的存储空间位8字节取值范围是 -9 223 372 036 854 775 808 到 +9 223 372 036 854 775 807
但是我用 long l = 1234567890123;编译的时候就报错:过大的整数
也就是我用long定义的整数也不能超过int的取值范围这是真么回事了? 

解决方案 »

  1.   


    long l = 1234567890123Llong型的字面值要在最后加个L类似的还有float f = 0.1f;因为浮点型的字面值默认是double型的,也就是0.1默认是0.1d
            System.out.println(Integer.MAX_VALUE);
            System.out.println(Integer.MIN_VALUE);
            System.out.println(Long.MAX_VALUE);
            System.out.println(Long.MIN_VALUE);包装类里有其最大最小值
      

  2.   

    一楼正解
    1234567890123如果不加L,则编译器默认其为int型,1234567890123作为int型,显然超出范围了,故编译时报错
      

  3.   

    另外,如果没超出int范围的值,传给long类型的,当然也可以不加L