long数据类型是64位有符号的Java原始数据类型。当对整数的计算结果可能超出int数据类型的范围时使用。
long数据类型范围是-9,223,372,036,854,775,8089,223,372,036,854,775,807(-2^632^63-1)。

long数据类型范围内的所有整数称为long类型的整数字面量。long类型的整数常数总是以大写L或小写l结尾。

以下是使用long类型的整数字面量的示例:

  1.  
    long num1 = 0L;
  2.  
    long num2 = 4L;
  3.  
    long mum3 = -3;
  4.  
    long num4 = 8;
  5.  
    long num5 = -1L;
  6.  
     
Java

Long字面量

long类型的整数字面量可以用八进制,十六进制和二进制格式表示。 例如,

 
  1.  
    long num1;
  2.  
    num1 = 25L; // Decimal format
  3.  
    num1 = 031L; // Octal format
  4.  
    num1 = 0X19L; // Hexadecimal format
  5.  
    num1 = 0b11001L; // Binary format
  6.  
     
Java

long类型的整数字面量分配给long类型的变量时,Java编译器检查要分配的值,并确保它在长数据类型的范围内; 否则会产生编译时错误。

注意,从intlong类型的赋值是有效的,因为存储在int变量中的所有值都可以存储在long类型的变量中。 然而,相过来就未必了,因为long类型数据比int类型范围要大。所以不能简单地将存储在long变量中的值分配给int变量。存在值溢出的可能性。

要将long变量的值赋给int变量,请在Java中使用“转换”表示,如下所示:

  1.  
    num1 = (int)num2;
  2.  
     
Java

Java有一个 Long 类,它定义了两个常量来表示长数据类型Long.MAX_VALUELong.MIN_VALUE的最大值和最小值。