1. 程式人生 > >IT兄弟連 Java語法教程 資料型別2

IT兄弟連 Java語法教程 資料型別2

整型

Java定義了4種整數型別:byte、short、int和long。所有這些型別都是有符號的、正或負的整數。Java不支援無符號的、只是正值的整數。許多其它計算機語言同時支援有符號和無符號整數。然而,Java的設計者覺得無符號整數不是必需的。特別是,它們覺得“無符號”的概念通常用於指定“高階位”(high-order bit)的行為,高階位用於定義整形值的符號。在本書後面的章節中將會看到,Java通過新增特殊的“無符號右移”運算子,以稍微不同的方式管理高階位的含義。因此,Java消除了對無符號整數型別的需要。

不應該將整數型別的寬度看成整數所消耗的儲存量,而應當理解成定義這種型別的變數和表示式的行為。Java執行時環境可以自由使用它們希望的、任何大小的空間。只要型別的行為符合宣告它們時的約定即可。這些整數型別的寬度和範圍相差很大,如表所示:

 

表 整數型別的寬度和範圍

 

ab301a75f8344c3c8dd729ad60af1fd4.png

 

接下來看一看每種整數型別。

●  byte

最小的整數型別是byte。它是有符號的8位整數型別。範圍為−128~127。當操作來自網路或檔案的資料流時,byte型別的變數特別有用。當操縱與Java的其它內建型別不直接相容的二進位制資料時,byte型別的變數也很有用。

byte變數是通過關鍵字byte宣告的。例如,下面聲明瞭兩個byte變數b和c:

byte b;

byte c;

●  short

short是有符號的16位整數型別,它的範圍為−32768~32767。它可能是最不常用的變數型別。short型別變數通過關鍵字byte宣告的。例如,下面聲明瞭兩個short變數s和t:

short s;

short t;

●  int

最常用的整數型別就是int型別。它是有符號的32位整數型別,範圍為-2147473648~2147483647。除了其它用途外,int型別變數通常用於控制迴圈和索引陣列。對於那些不需要更大範圍的int型別數值的情況,您可能會認為使用範圍更小的byte和short型別效率更高些,然而事實並非如此。原因是如果在表示式中使用byte和short值,當對錶達式求值時會被提升為int型別。所以,當需要使用整數型別時,int通常時最好的選擇。int型別變數通過關鍵字int宣告的。例如,下面聲明瞭兩個int變數i和n:

int i;

int n;

●  long

long是有符號的64位整數型別,對於那些int型別不足以容納的整數,long型別是最有用的。long型別的範圍相當大,這使得當需要很大的整數時它非常有用。long型別變數通過關鍵字long宣告的。例如,下面聲明瞭兩個long變數l和g:

long l;

long g;

 

浮點型

浮點數也稱為實數(real number),當計算需要小數精度的表示式時使用。例如,求平方根這類計算以及正弦和餘弦這類超越數,儲存結果就需要使用浮點型別。Java實現了IEEE-754標準集的浮點型別和運算子。Java中有兩種浮點型別:float和double,它們分別表示單精度浮點數和雙精度浮點數。它們的寬度和精度如表3.3所示:

 

表浮點型別的寬度和範圍

ad5a5edfb3b74019860d27d4bf9a34b4.png

 

下面詳細解釋每種浮點型別

●  float

float型別表示使用32位儲存的單精度(single-precision)數值。在某些處理器上,單精度運算速度更快,並且佔用的空間是雙精度的一半,但是當數值非常小時會變得不精確。如果需要小數部分,並且精度要求不是很高時,float型別的變數是很有用的。例如表示商品單價時可以使用float型別。float型別變數通過關鍵字float宣告的。例如,下面聲明瞭兩個float變數f和o:

float f;

float o;

●  double

雙精度使用double關鍵字表示,並使用64位儲存數值,在針對高速數學運算進行了優化的某些現代處理器上,實際上雙精度數值的運算速度更快。所有超越數學函式,如sin()、cos()和sqtr(),都返回雙精度值。如果需要在很多次迭代運算中保持精度,或是操作非常大的數值,double型別是最佳選擇。double型別變數通過關鍵字double宣告的。例如,下面聲明瞭兩個double變數u和l:

double