溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

一文詳解 Java 的八大基本類型!

發(fā)布時(shí)間:2020-08-18 01:21:39 來源:ITPUB博客 閱讀:193 作者:專注的阿熊 欄目:編程語言

自從Java發(fā)布以來,基本數(shù)據(jù)類型就是Java語言中重要的一部分,本文就來詳細(xì)介紹下每種基本類型的具體使用方法和限制。

以下為譯文:

幾年前,我開始編寫了一系列有關(guān)Java入門的文章,我覺得有必要將其中一些非常細(xì)節(jié)的內(nèi)容單獨(dú)拿出來寫成文章。這樣,那些入門內(nèi)容就更容易理解了。首先,我來介紹一下有關(guān)Java 8中的基本類型。

如題所述,Java語言本身有8種基本類型。在下面幾節(jié)中,就讓我們一起來看看這8種基本類型。我將針對(duì)每種基本類型,介紹具體的使用方法和限制。

一、int基本類型

首先,Java的整數(shù)是32位有符號(hào)(即包括正值和負(fù)值)整數(shù),由int關(guān)鍵字表示:

int someNumber = 10;

當(dāng)然,像所有基本類型一樣,整型有自己的限制。由于它只有32位,所以其取值范圍為-2147483648到2147483647。這數(shù)字很大嘛!當(dāng)然,我們可以在DrJava的交互面板中用下述技巧來確認(rèn):

Integer.MAX_VALUE 
// Prints 2,147,483,647

Integer.MIN_VALUE // Prints -2,147,483,648

自然地,對(duì)于簡(jiǎn)單的計(jì)算而言,int是最常用的整數(shù)類型。如果你需要更大的數(shù)字范圍,請(qǐng)參照下面的long。

二、double基本類型

與int不同,Java的雙精度類型是64位浮點(diǎn)數(shù),由double關(guān)鍵字表示:

double someNumber = 110.55;

需要提醒的是,浮點(diǎn)數(shù)實(shí)際上就是實(shí)數(shù)。換句話說,雙精度浮點(diǎn)數(shù)中包含小數(shù)點(diǎn)。

由于雙精度類型是64位,它能表示的數(shù)字要比整型多很多。同樣,我們可以利用交互面板來確認(rèn)雙精度類型的范圍:

Double.MAX_VALUE 
// Prints 1.7976931348623157E308

Double.MIN_VALUE // Prints 4.9E-324

需要注意的是,負(fù)的指數(shù)表示的是非常小的數(shù)字,而不是非常大的負(fù)數(shù)。所以這里的取值范圍跟整數(shù)不是完全一樣。

一般而言,double是在Java中使用浮點(diǎn)數(shù)的默認(rèn)選擇。另一個(gè)選擇是float。

三、char基本類型

我們已經(jīng)看到,Java的字符類型表示16位字符,由char關(guān)鍵字表示:

char someCharacter = 'f';

Java中所有的字符都用單引號(hào)表示。同時(shí),雙引號(hào)用來表示字符串。我們稍后會(huì)討論字符串。

與往常一樣,我們可以通過下面的代碼找出字符的范圍:

Character.MAX_VALUE 
// Prints '???'

Character.MIN_VALUE // Prints ''

為了讓這個(gè)范圍有意義,我們可以將結(jié)果轉(zhuǎn)換成整數(shù)(稍后會(huì)更多地介紹):

(
int) Character.MAX_VALUE 
// Prints 65535

( int) Character.MIN_VALUE // Prints 0

可見,char類型是Java中唯一的無符號(hào)類型。換句話說,字符的取值范圍為0到65535,每個(gè)值映射到特定的字符。如果需要?jiǎng)?chuàng)建該范圍之外的字符,可以將一對(duì)字符組合起來。參見“在Java中反轉(zhuǎn)字符串”(https://therenegadecoder.com/code/reverse-a-string-in-java/)這篇文章中的例子。

四、byte基本類型

當(dāng)我們討論二進(jìn)制時(shí),我們討論的實(shí)際上是比特的概念。而8個(gè)比特組成一個(gè)字節(jié),字節(jié)是Java支持的基本類型之一。本質(zhì)上,byte類型只不過是取值范圍為-128到127的8位整數(shù)。可以猜到,字節(jié)由byte關(guān)鍵字表示:

byte someByte = 20;

同樣,可以利用下面的代碼片段來確認(rèn)byte類型的取值范圍:

Byte.MAX_VALUE 
// Prints 127

Byte.MIN_VALUE // Prints -128

根據(jù)我的經(jīng)驗(yàn),byte類型在讀取和處理原始數(shù)據(jù)時(shí)非常有用。但是一般而言,我們不會(huì)使用它,因?yàn)槿≈捣秶×恕?/span>

五、short基本類型

short是另一種整數(shù)類型,但它占用的空間要比int類型更小。實(shí)際上,它的占用空間正好是int類型的一半,為16位,由short關(guān)鍵字表示:

short someNumber = 11;

short類型的取值范圍也只有整數(shù)的一半,我們可以用下述代碼確認(rèn):

Short.MAX_VALUE 
// Prints 32767

Short.MIN_VALUE // Prints -32768

在實(shí)際應(yīng)用中,short只有65546個(gè)可能的值。在內(nèi)存空間和磁盤空間受限的情況下,我們會(huì)使用byte和short。但在其他情況下,在定義整數(shù)時(shí)默認(rèn)使用int更為安全。

六、long基本類型

與short相反的是long基本類型,即長(zhǎng)整數(shù)。該類型用來表示比int類型還要大的非常大的數(shù)。long類型是64位有符號(hào)整數(shù),其取值范圍超過了10的18次方。

通常,長(zhǎng)整數(shù)用long關(guān)鍵字表示:

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可以用來計(jì)算光在一定時(shí)間內(nèi)走過的距離。光在一秒內(nèi)大約傳播30萬千米。如果編寫一個(gè)程序來跟蹤光走過的距離,那么7秒后int類型就超出范圍類,而long類型能夠計(jì)算大約975年。不相信嗎?可以看看這個(gè)gist(https://gist.github.com/jrg94/820d3f0f482dd19f0170964346381df0)中的計(jì)算。

七、float基本類型

雖然我們通常使用64位浮點(diǎn)數(shù)類型double,但Java還支持另一種浮點(diǎn)數(shù)類型,叫做float。但與int類似,Java默認(rèn)情況下使用double表示浮點(diǎn)數(shù)。不管怎樣,我們可以用float來表示32位浮點(diǎn)數(shù)類型:

float someNumber = 11.4f;function(){   //外匯跟單www.gendan5.com

float類型的范圍如下:

Float.MAX_VALUE 
// Prints 3.4028235E38

Float.MIN_VALUE // Prints 1.4E-45

可見,32位浮點(diǎn)數(shù)的范圍和精度都要小得多。如果不需要double的精度,同時(shí)節(jié)省一半的空間,那么可以選擇float類型。

八、boolean基本類型

最后我們來討論一下boolean類型。定義布爾類型可以使用boolean關(guān)鍵字:

boolean isBool = true;

布爾類型有些特殊,不像其他基本類型那樣,它們表示的不是數(shù)字值。 實(shí)際上,之前使用的MAX_VALUE和MIN_VALUE技巧在這里不能使用。 相反,它表示的是true或false,即真和假。

在此,我不打算詳細(xì)介紹布爾類型,因?yàn)樵贘ava中做任何事情都會(huì)涉及到布爾類型。 盡管如此,我們通常不會(huì)明確地聲明布爾類型。 相反,許多代碼邏輯中的比較操作的結(jié)果都是布爾類型。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI