long
数据类型是64
位有符号的Java
原始数据类型。当对整数的计算结果可能超出int
数据类型的范围时使用。long
数据类型范围是-9,223,372,036,854,775,808
至9,223,372,036,854,775,807
(-2^63
至2^63-1
)。
long
数据类型范围内的所有整数称为long
类型的整数字面量。long
类型的整数常数总是以大写L
或小写l
结尾。
以下是使用long
类型的整数字面量的示例:
long num1 = 0L; long num2 = 4L; long mum3 = -3; long num4 = 8; long num5 = -1L;
long
类型的整数字面量可以用八进制,十六进制和二进制格式表示。 例如,
long num1; num1 = 25L; // Decimal format num1 = 031L; // Octal format num1 = 0X19L; // Hexadecimal format num1 = 0b11001L; // Binary format
当long
类型的整数字面量分配给long
类型的变量时,Java编译器检查要分配的值,并确保它在长数据类型的范围内; 否则会产生编译时错误。
注意,从
int
到long
类型的赋值是有效的,因为存储在int
变量中的所有值都可以存储在long
类型的变量中。 然而,相过来就未必了,因为long
类型数据比int
类型范围要大。所以不能简单地将存储在long
变量中的值分配给int
变量。存在值溢出的可能性。
要将long
变量的值赋给int
变量,请在Java中使用“转换”表示,如下所示:
num1 = (int)num2;
Java有一个 Long
类,它定义了两个常量来表示长数据类型Long.MAX_VALUE
和Long.MIN_VALUE
的最大值和最小值。