整數類型的長度(width )不應該被理解為它占用的存儲空間,而應該是該類變量和表達式的行為(behavior )。只要你對類型進行了說明,Java 的運行環境對該類的大小是沒有限制的。事實上,為了提高性能,至少字節型和短整型的存儲是32位(而非8位和16位),因為這是現在大多數計算機使用的字的大小。
這些整數類型的長度和變化范圍如表3-1 所示:
表3-1 整數的各種類型及特性
名稱 長度 數的范圍
長整型 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
字節型 8 –128~127
讓我們分別討論整數的每種類型。
3.3.1 字節型(byte)
最小的整數類型是字節型。它是有符號的8位類型,數的范圍是-128~127。當你從網絡或文件處理數據流的時候,字節類型的變量特別有用。當你處理可能與Java 的其他內置類型不直接兼容的未加工的二進制的數據時,它們也是有用的。
3.3.2 短整型(short)
short是有符號的16位類型,數的范圍是 –32,768~32,767 。因為它被定義為高字節優先(稱為big-endian 格式),它可能是Java 中使用得最少的類型。這種類型主要適用于16位計算機,然而這種計算機現在已經很少見了。
下面是聲明Short變量的一些例子:
short s;
short t;
注意:“Endianness ”描述像short,int ,和 long 這些多字節數據類型是如何被存儲在存儲器中的。如果用2 個字節代表short ,那么哪個字節在前,是高字節位(最重要的字節)還是低字節位(最不重要的字節)?說一臺機器是big-endian,那意味著這個機器中最重要的字節在前,最不重要的字節在后。例如 SPARC 和PowerPC 的機器是 big-endian ,而Intel x86 系列是 little-endian 。
3.3.3 整型(int)
最常用的整數類型是int 。它是有符號的32位類型,數的范圍是-2,147,483,648~2,147,483,647 。int 類型的變量通常被用來控制循環及作數組的下標。任何時候你的整數表達式包含byte,short,int 及字面量數字,在進行計算以前,所有表達式的類型被提升(promoted )到整型。
整型是最通用并且有效的類型,當你想要計數用作或數組下標或進行整數計算時,你應該使用整型。似乎使用字節型和短整型可以節約空間,但是不能保證 Java 不會內部把那些類型提升到整型。記住,類型決定行為,而不是大?。ㄎ┮坏睦馐菙到M,字節型的數據保證每個數組元素只占用一個字節,短整型使用 2 個字節,整型將使用4個。)
3.3.4 長整型(long)
long 是有符號的64位類型,它對于那些整型不足以保存所要求的數值時是有用的。長整型數的范圍是相當大的。這使得大的、整個數字都被需要時,它是非常有用的。例如,下面的程序是計算光在一個指定的天數旅行的英里數。
// 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 ”這個關鍵字的使用來定義字節變量。例如,下面定義了2個變量,稱為b 和c:byte b,c;3.3.2 短整型(short)
short是有符號的16位類型,數的范圍是 –32,768~32,767 。因為它被定義為高字節優先(稱為big-endian 格式),它可能是Java 中使用得最少的類型。這種類型主要適用于16位計算機,然而這種計算機現在已經很少見了。
下面是聲明Short變量的一些例子:
short s;
short t;
注意:“Endianness ”描述像short,int ,和 long 這些多字節數據類型是如何被存儲在存儲器中的。如果用2 個字節代表short ,那么哪個字節在前,是高字節位(最重要的字節)還是低字節位(最不重要的字節)?說一臺機器是big-endian,那意味著這個機器中最重要的字節在前,最不重要的字節在后。例如 SPARC 和PowerPC 的機器是 big-endian ,而Intel x86 系列是 little-endian 。
3.3.3 整型(int)
最常用的整數類型是int 。它是有符號的32位類型,數的范圍是-2,147,483,648~2,147,483,647 。int 類型的變量通常被用來控制循環及作數組的下標。任何時候你的整數表達式包含byte,short,int 及字面量數字,在進行計算以前,所有表達式的類型被提升(promoted )到整型。
整型是最通用并且有效的類型,當你想要計數用作或數組下標或進行整數計算時,你應該使用整型。似乎使用字節型和短整型可以節約空間,但是不能保證 Java 不會內部把那些類型提升到整型。記住,類型決定行為,而不是大?。ㄎ┮坏睦馐菙到M,字節型的數據保證每個數組元素只占用一個字節,短整型使用 2 個字節,整型將使用4個。)
3.3.4 長整型(long)
long 是有符號的64位類型,它對于那些整型不足以保存所要求的數值時是有用的。長整型數的范圍是相當大的。這使得大的、整個數字都被需要時,它是非常有用的。例如,下面的程序是計算光在一個指定的天數旅行的英里數。
// 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
lightspeed = 186000;
days = 1000; // specify number of days here
seconds = days * 24 * 60 * 60; // convert to seconds
distance = lightspeed * seconds; // compute distance
System.out.print("In " + days);
System.out.print(" days light will travel about ");
System.out.println(distance + " miles.");
}
}
這個程序運行的結果如下:
In 1000 days light will travel about 16070400000000 miles.
很清楚,計算結果超出了整型數的表達范圍。
原文轉自:http://www.anti-gravitydesign.com