long
數(shù)據(jù)類型是64
位有符號(hào)的Java
原始數(shù)據(jù)類型。當(dāng)對(duì)整數(shù)的計(jì)算結(jié)果可能超出int
數(shù)據(jù)類型的范圍時(shí)使用。long
數(shù)據(jù)類型范圍是-9,223,372,036,854,775,808
至9,223,372,036,854,775,807
(-2^63
至2^63-1
)。
long
數(shù)據(jù)類型范圍內(nèi)的所有整數(shù)稱為long
類型的整數(shù)字面量。long
類型的整數(shù)常數(shù)總是以大寫L
或小寫l
結(jié)尾。
以下是使用long
類型的整數(shù)字面量的示例:
long num1 = 0L;
long num2 = 4L;
long mum3 = -3;
long num4 = 8;
long num5 = -1L;
long
類型的整數(shù)字面量可以用八進(jìn)制,十六進(jìn)制和二進(jìn)制格式表示。 例如,
long num1;
num1 = 25L; // Decimal format
num1 = 031L; // Octal format
num1 = 0X19L; // Hexadecimal format
num1 = 0b11001L; // Binary format
當(dāng)long
類型的整數(shù)字面量分配給long
類型的變量時(shí),Java編譯器檢查要分配的值,并確保它在長數(shù)據(jù)類型的范圍內(nèi); 否則會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤。
注意,從
int
到long
類型的賦值是有效的,因?yàn)榇鎯?chǔ)在int
變量中的所有值都可以存儲(chǔ)在long
類型的變量中。 然而,相過來就未必了,因?yàn)?code>long類型數(shù)據(jù)比int
類型范圍要大。所以不能簡單地將存儲(chǔ)在long
變量中的值分配給int
變量。存在值溢出的可能性。
要將long
變量的值賦給int
變量,請(qǐng)?jiān)贘ava中使用“轉(zhuǎn)換”表示,如下所示:
num1 = (int)num2;
Java有一個(gè) Long
類,它定義了兩個(gè)常量來表示長數(shù)據(jù)類型Long.MAX_VALUE
和Long.MIN_VALUE
的最大值和最小值。