整數(shù)類型的長度(width )不應(yīng)該被理解為它占用的存儲(chǔ)空間,而應(yīng)該是該類變量和表達(dá)式的行為(behavior )。只要你對(duì)類型進(jìn)行了說明,Java 的運(yùn)行環(huán)境對(duì)該類的大小是沒有限制的。事實(shí)上,為了提高性能,至少字節(jié)型和短整型的存儲(chǔ)是32位(而非8位和16位),因?yàn)檫@是現(xiàn)在大多數(shù)計(jì)算機(jī)使用的字的大小。
這些整數(shù)類型的長度和變化范圍如表3-1 所示:
表3-1 整數(shù)的各種類型及特性
名稱 長度 數(shù)的范圍
長整型 64 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
整型 32 –2,147,483,648 ~ 2,147,483,647
短整型 16 –32,768 ~ 32,767
字節(jié)型 8 –128~127
讓我們分別討論整數(shù)的每種類型。
3.3.1 字節(jié)型(byte)
最小的整數(shù)類型是字節(jié)型。它是有符號(hào)的8位類型,數(shù)的范圍是-128~127。當(dāng)你從網(wǎng)絡(luò)或文件處理數(shù)據(jù)流的時(shí)候,字節(jié)類型的變量非凡有用。當(dāng)你處理可能與Java 的其他內(nèi)置類型不直接兼容的未加工的二進(jìn)制的數(shù)據(jù)時(shí),它們也是有用的。
3.3.2 短整型(short)
short是有符號(hào)的16位類型,數(shù)的范圍是 –32,768~32,767 。因?yàn)樗欢x為高字節(jié)優(yōu)先(稱為big-endian 格式),它可能是Java 中使用得最少的類型。這種類型主要適用于16位計(jì)算機(jī),然而這種計(jì)算機(jī)現(xiàn)在已經(jīng)很少見了。
下面是聲明Short變量的一些例子:
short s;
short t;
注重:“Endianness ”描述像short,int ,和 long 這些多字節(jié)數(shù)據(jù)類型是如何被存儲(chǔ)在存儲(chǔ)器中的。假如用2 個(gè)字節(jié)代表short ,那么哪個(gè)字節(jié)在前,是高字節(jié)位(最重要的字節(jié))還是低字節(jié)位(最不重要的字節(jié))?說一臺(tái)機(jī)器是big-endian,那意味著這個(gè)機(jī)器中最重要的字節(jié)在前,最不重要的字節(jié)在后。例如 SPARC 和PowerPC 的機(jī)器是 big-endian ,而Intel x86 系列是 little-endian 。
3.3.3 整型(int)
最常用的整數(shù)類型是int 。它是有符號(hào)的32位類型,數(shù)的范圍是-2,147,483,648~2,147,483,647 。int 類型的變量通常被用來控制循環(huán)及作數(shù)組的下標(biāo)。任何時(shí)候你的整數(shù)表達(dá)式包含byte,short,int 及字面量數(shù)字,在進(jìn)行計(jì)算以前,所有表達(dá)式的類型被提升(PRomoted )到整型。
整型是最通用并且有效的類型,當(dāng)你想要計(jì)數(shù)用作或數(shù)組下標(biāo)或進(jìn)行整數(shù)計(jì)算時(shí),你應(yīng)該使用整型。似乎使用字節(jié)型和短整型可以節(jié)約空間,但是不能保證 Java 不會(huì)內(nèi)部把那些類型提升到整型。記住,類型決定行為,而不是大?。ㄎ┮坏睦馐菙?shù)組,字節(jié)型的數(shù)據(jù)保證每個(gè)數(shù)組元素只占用一個(gè)字節(jié),短整型使用 2 個(gè)字節(jié),整型將使用4個(gè)。)
3.3.4 長整型(long)
long 是有符號(hào)的64位類型,它對(duì)于那些整型不足以保存所要求的數(shù)值時(shí)是有用的。長整型數(shù)的范圍是相當(dāng)大的。這使得大的、整個(gè)數(shù)字都被需要時(shí),它是非常有用的。例如,下面的程序是計(jì)算光在一個(gè)指定的天數(shù)旅行的英里數(shù)。
// Compute distance light travels using long variables.
class Light {
public static void main(String args[]) {
int lightspeed;
long days;
long seconds;
long distance;
// approximate speed of light in miles per second
通過“byte ”這個(gè)要害字的使用來定義字節(jié)變量。例如,下面定義了2個(gè)變量,稱為b 和c:byte b,c;新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注