一文詳解 Java 的八大基本型別!
自從Java釋出以來,基本資料型別就是Java語言中重要的一部分,本文就來詳細介紹下每種基本型別的具體使用方法和限制。
以下為譯文:
幾年前,我開始編寫了一系列有關Java入門的文章,我覺得有必要將其中一些非常細節的內容單獨拿出來寫成文章。這樣,那些入門內容就更容易理解了。首先,我來介紹一下有關Java 8中的基本型別。
如題所述,Java語言本身有8種基本型別。在下面幾節中,就讓我們一起來看看這8種基本型別。我將針對每種基本型別,介紹具體的使用方法和限制。
一、int基本型別
首先,Java的整數是32位有符號(即包括正值和負值)整數,由int關鍵字表示:
int someNumber = 10;
當然,像所有基本型別一樣,整型有自己的限制。由於它只有32位,所以其取值範圍為-2147483648到2147483647。這數字很大嘛!當然,我們可以在DrJava的互動皮膚中用下述技巧來確認:
Integer.MAX_VALUE
// Prints 2,147,483,647
Integer.MIN_VALUE
// Prints -2,147,483,648
自然地,對於簡單的計算而言,int是最常用的整數型別。如果你需要更大的數字範圍,請參照下面的long。
二、double基本型別
與int不同,Java的雙精度型別是64位浮點數,由double關鍵字表示:
double someNumber = 110.55;
需要提醒的是,浮點數實際上就是實數。換句話說,雙精度浮點數中包含小數點。
由於雙精度型別是64位,它能表示的數字要比整型多很多。同樣,我們可以利用互動皮膚來確認雙精度型別的範圍:
Double.MAX_VALUE
// Prints 1.7976931348623157E308
Double.MIN_VALUE
// Prints 4.9E-324
需要注意的是,負的指數表示的是非常小的數字,而不是非常大的負數。所以這裡的取值範圍跟整數不是完全一樣。
一般而言,double是在Java中使用浮點數的預設選擇。另一個選擇是float。
三、char基本型別
我們已經看到,Java的字元型別表示16位字元,由char關鍵字表示:
char someCharacter = 'f';
Java中所有的字元都用單引號表示。同時,雙引號用來表示字串。我們稍後會討論字串。
與往常一樣,我們可以透過下面的程式碼找出字元的範圍:
Character.MAX_VALUE
// Prints '???'
Character.MIN_VALUE
// Prints ''
為了讓這個範圍有意義,我們可以將結果轉換成整數(稍後會更多地介紹):
(
int) Character.MAX_VALUE
// Prints 65535
(
int) Character.MIN_VALUE
// Prints 0
可見,char型別是Java中唯一的無符號型別。換句話說,字元的取值範圍為0到65535,每個值對映到特定的字元。如果需要建立該範圍之外的字元,可以將一對字元組合起來。參見“在Java中反轉字串”()這篇文章中的例子。
四、byte基本型別
當我們討論二進位制時,我們討論的實際上是位元的概念。而8個位元組成一個位元組,位元組是Java支援的基本型別之一。本質上,byte型別只不過是取值範圍為-128到127的8位整數。可以猜到,位元組由byte關鍵字表示:
byte someByte = 20;
同樣,可以利用下面的程式碼片段來確認byte型別的取值範圍:
Byte.MAX_VALUE
// Prints 127
Byte.MIN_VALUE
// Prints -128
根據我的經驗,byte型別在讀取和處理原始資料時非常有用。但是一般而言,我們不會使用它,因為取值範圍太小了。
五、short基本型別
short是另一種整數型別,但它佔用的空間要比int型別更小。實際上,它的佔用空間正好是int型別的一半,為16位,由short關鍵字表示:
short someNumber = 11;
short型別的取值範圍也只有整數的一半,我們可以用下述程式碼確認:
Short.MAX_VALUE
// Prints 32767
Short.MIN_VALUE
// Prints -32768
在實際應用中,short只有65546個可能的值。在記憶體空間和磁碟空間受限的情況下,我們會使用byte和short。但在其他情況下,在定義整數時預設使用int更為安全。
六、long基本型別
與short相反的是long基本型別,即長整數。該型別用來表示比int型別還要大的非常大的數。long型別是64位有符號整數,其取值範圍超過了10的18次方。
通常,長整數用long關鍵字表示:
long someBigNumber = 1013401346173L;
下面的程式碼可以檢視64位值究竟有多大:
Long.MAX_VALUE
// Prints 9,223,372,036,854,775,807
Long.MIN_VALUE
// Prints -9,223,372,036,854,775,808
也許,long可以用來計算光在一定時間內走過的距離。光在一秒內大約傳播30萬千米。如果編寫一個程式來跟蹤光走過的距離,那麼7秒後int型別就超出範圍類,而long型別能夠計算大約975年。不相信嗎?可以看看這個gist()中的計算。
七、float基本型別
雖然我們通常使用64位浮點數型別double,但Java還支援另一種浮點數型別,叫做float。但與int類似,Java預設情況下使用double表示浮點數。不管怎樣,我們可以用float來表示32位浮點數型別:
float someNumber = 11.4f;function(){ //外匯跟單
float型別的範圍如下:
Float.MAX_VALUE
// Prints 3.4028235E38
Float.MIN_VALUE
// Prints 1.4E-45
可見,32位浮點數的範圍和精度都要小得多。如果不需要double的精度,同時節省一半的空間,那麼可以選擇float型別。
八、boolean基本型別
最後我們來討論一下boolean型別。定義布林型別可以使用boolean關鍵字:
boolean isBool = true;
布林型別有些特殊,不像其他基本型別那樣,它們表示的不是數字值。 實際上,之前使用的MAX_VALUE和MIN_VALUE技巧在這裡不能使用。 相反,它表示的是true或false,即真和假。
在此,我不打算詳細介紹布林型別,因為在Java中做任何事情都會涉及到布林型別。 儘管如此,我們通常不會明確地宣告布林型別。 相反,許多程式碼邏輯中的比較操作的結果都是布林型別。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2662648/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 八大基本資料型別資料型別
- JavaScript 基本資料型別和引用型別的區別詳解JavaScript資料型別
- Java集合型別詳解Java型別
- Java的基本型別和引用型別Java型別
- Java中的Type型別詳解Java型別
- 教妹學Java(九):一文搞懂Java中的基本資料型別Java資料型別
- Java的基本資料型別Java資料型別
- JAVA 基本型別與 引用型別區別Java型別
- Java整型資料型別(詳解)Java資料型別
- Java 基本資料型別Java資料型別
- Java -基本資料型別Java資料型別
- Java基本資料型別Java資料型別
- Java列舉型別enum的詳解及使用Java型別
- java基本型別和包裝型別的“==”和equals()方法Java型別
- Java基礎-基本型別和包裝型別Java型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- 【Java】基本型別包裝類Java型別
- Java基本資料型別和引用型別 - Java那些事兒Java資料型別
- java 基本型別的轉換規則Java型別
- Java中的基本資料型別與引用資料型別Java資料型別
- java基礎之java的基本資料型別Java資料型別
- Java15變數竟然沒什麼區別,八大基本資料型別你知道嗎?Java變數資料型別
- Java 型別資訊詳解和反射機制Java型別反射
- javascript基本型別 引用型別 基本包裝型別JavaScript型別
- 八大資料型別大資料資料型別
- 詳解Java 虛擬機器(第④篇)——8 種基本型別的包裝類和常量池Java虛擬機型別
- Java 包裝類和基本型別Java型別
- java Atomic 基本資料型別Java資料型別
- Java有哪些基本資料型別?Java資料型別
- java基本資料型別佔位Java資料型別
- 測試Java中的long,int基本型別Java型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- [JAVA] Java 變數、表示式和資料型別詳解Java變數資料型別
- Java技術分享:Java基本資料型別Java資料型別
- Java的泛型詳解(一)Java泛型
- Java 泛型詳解Java泛型
- Java泛型詳解Java泛型
- Java中基本型別Array與複合型別List的互相轉換Java型別