溫馨提示×

溫馨提示×

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

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

Java基本數(shù)據(jù)類型的知識點有哪些

發(fā)布時間:2022-02-24 10:38:39 來源:億速云 閱讀:126 作者:iii 欄目:開發(fā)技術(shù)

這篇“Java基本數(shù)據(jù)類型的知識點有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java基本數(shù)據(jù)類型的知識點有哪些”文章吧。

相信學過Java的小伙伴們都知道,Java是強類型語言,所以Java對于數(shù)據(jù)類型的規(guī)范會相對嚴格。

它提供了八種基本類型(這里不講解Void)。其中六種數(shù)字類型(四個整數(shù)型(默認是int 型),兩個浮點型(默認是double 型)),一種字符類型,還有一種布爾型。

基礎(chǔ)

我們先來一點干貨??!

基本數(shù)據(jù)類型大小值域默認值包裝器類型
boolean-true,falsefalseBoolean
char16 bit[0,216-1]‘\u0000’Character
byte8 bit[-128,127]0Byte
short16 bit[-215,215-1]0Short
int32 bit[-231,231-1]0Integer
long64 bit[-263,263-1]0LLong
float32 bit[-3.4E38,3.4E38]0.0FFloat
double64 bit[-1.8E308,1.8E308]0.0DDouble

如果掌握了這些要點,那說明基礎(chǔ)是不錯的,有興趣的話可以隨小編再深入了解一下!!

深入

數(shù)據(jù)類型在計算機語言里面,是對程序所處理數(shù)據(jù)的抽象,它存在的意義是為了方便虛擬機為不同的數(shù)據(jù)分配更合適的空間。所以,對數(shù)據(jù)類型的理解自然與虛擬機分不開。

在 Java 虛擬機規(guī)范中,boolean 類型則被映射成 int 類型。具體來說,“true”被映射為整數(shù) 1,而“false”被映射為整數(shù) 0。這個編碼規(guī)則約束了 Java 字節(jié)碼的具體實現(xiàn)。

Java 虛擬機規(guī)范同時也要求 Java 編譯器遵守這個編碼規(guī)則,并且用整數(shù)相關(guān)的字節(jié)碼來實現(xiàn)邏輯運算,以及基于 boolean 類型的條件跳轉(zhuǎn)。這樣一來,在編譯而成的 class 文件中,除了字段和傳入?yún)?shù)外,基本看不出 boolean 類型的痕跡了。

Java 的基本類型都有對應(yīng)的值域和默認值。

可以看到,byte、short、int、long、float 以及 double 的值域依次擴大,而且前面的值域被后面的值域所包含。因此,從前面的基本類型轉(zhuǎn)換至后面的基本類型,無需強制轉(zhuǎn)換。另外一點值得注意的是,盡管他們的默認值看起來不一樣,但在內(nèi)存中都是 0。

在這些基本類型中,boolean 和 char 是唯二的無符號類型。boolean 類型的取值范圍是 0 或者 1,char 類型的取值范圍則是 [0, 65535]。通常我們可以認定 char 類型的值為非負數(shù),這種特性十分有用,比如說作為數(shù)組索引等。

數(shù)據(jù)存儲

Java 虛擬機每調(diào)用一個 Java 方法,便會創(chuàng)建一個棧幀。這種棧幀有兩個主要的組成部分,分別是局部變量區(qū),以及字節(jié)碼的操作數(shù)棧。

在 Java 虛擬機規(guī)范中,局部變量區(qū)等價于一個數(shù)組,并且可以用正整數(shù)作為索引。除了 long、double 值需要用兩個數(shù)組單元來存儲之外,其他基本類型以及引用類型的值均占用一個數(shù)組單元。也就是說,boolean、byte、char、short 這四種類型,在棧上占用的空間和 int 是一樣的,和引用類型也是一樣的。

因此,當我們將一個 int 類型的值,存儲到這些類型的字段或數(shù)組時,相當于做了一次隱式的掩碼操作。舉例來說,當我們把 0xFFFFFFFF(-1)存儲到一個聲明為 char 類型的字段里時,由于該字段僅占兩字節(jié),所以高兩位的字節(jié)便會被截取掉,最終存入“\uFFFF”。

數(shù)據(jù)加載

Java 虛擬機的算數(shù)運算幾乎全部依賴于操作數(shù)棧。也就是說,我們需要將堆中的 boolean、byte、char 以及 short 加載到操作數(shù)棧上,而后將棧上的值當成 int 類型來運算。

對于 boolean、char 這兩個無符號類型來說,加載伴隨著零擴展。舉例來說,char 的大小為兩個字節(jié),在加載時 char 的值會被復(fù)制到 int 類型的低二字節(jié),而高二字節(jié)則會用 0 來填充。

對于 byte、short 這兩個類型來說,加載伴隨著符號擴展。舉個例子,short 的大小為兩個字節(jié)。在加載時 short 的值同樣會被復(fù)制到 int 類型的低二字節(jié)。如果該 short 值為非負數(shù),即最高位為 0,那么該 int 類型的值的高二字節(jié)會用 0 來填充,否則用 1 來填充。

以上就是關(guān)于“Java基本數(shù)據(jù)類型的知識點有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI