您好,登錄后才能下訂單哦!
這篇“Java基本數據類型的知識點有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java基本數據類型的知識點有哪些”文章吧。
相信學過Java的小伙伴們都知道,Java是強類型語言,所以Java對于數據類型的規范會相對嚴格。
它提供了八種基本類型(這里不講解Void)。其中六種數字類型(四個整數型(默認是int 型),兩個浮點型(默認是double 型)),一種字符類型,還有一種布爾型。
我們先來一點干貨!!
基本數據類型 | 大小 | 值域 | 默認值 | 包裝器類型 |
---|---|---|---|---|
boolean | - | true,false | false | Boolean |
char | 16 bit | [0,216-1] | ‘\u0000’ | Character |
byte | 8 bit | [-128,127] | 0 | Byte |
short | 16 bit | [-215,215-1] | 0 | Short |
int | 32 bit | [-231,231-1] | 0 | Integer |
long | 64 bit | [-263,263-1] | 0L | Long |
float | 32 bit | [-3.4E38,3.4E38] | 0.0F | Float |
double | 64 bit | [-1.8E308,1.8E308] | 0.0D | Double |
如果掌握了這些要點,那說明基礎是不錯的,有興趣的話可以隨小編再深入了解一下!!
數據類型在計算機語言里面,是對程序所處理數據的抽象,它存在的意義是為了方便虛擬機為不同的數據分配更合適的空間。所以,對數據類型的理解自然與虛擬機分不開。
在 Java 虛擬機規范中,boolean 類型則被映射成 int 類型。具體來說,“true”被映射為整數 1,而“false”被映射為整數 0。這個編碼規則約束了 Java 字節碼的具體實現。
Java 虛擬機規范同時也要求 Java 編譯器遵守這個編碼規則,并且用整數相關的字節碼來實現邏輯運算,以及基于 boolean 類型的條件跳轉。這樣一來,在編譯而成的 class 文件中,除了字段和傳入參數外,基本看不出 boolean 類型的痕跡了。
Java 的基本類型都有對應的值域和默認值。
可以看到,byte、short、int、long、float 以及 double 的值域依次擴大,而且前面的值域被后面的值域所包含。因此,從前面的基本類型轉換至后面的基本類型,無需強制轉換。另外一點值得注意的是,盡管他們的默認值看起來不一樣,但在內存中都是 0。
在這些基本類型中,boolean 和 char 是唯二的無符號類型。boolean 類型的取值范圍是 0 或者 1,char 類型的取值范圍則是 [0, 65535]。通常我們可以認定 char 類型的值為非負數,這種特性十分有用,比如說作為數組索引等。
Java 虛擬機每調用一個 Java 方法,便會創建一個棧幀。這種棧幀有兩個主要的組成部分,分別是局部變量區,以及字節碼的操作數棧。
在 Java 虛擬機規范中,局部變量區等價于一個數組,并且可以用正整數作為索引。除了 long、double 值需要用兩個數組單元來存儲之外,其他基本類型以及引用類型的值均占用一個數組單元。也就是說,boolean、byte、char、short 這四種類型,在棧上占用的空間和 int 是一樣的,和引用類型也是一樣的。
因此,當我們將一個 int 類型的值,存儲到這些類型的字段或數組時,相當于做了一次隱式的掩碼操作。舉例來說,當我們把 0xFFFFFFFF(-1)存儲到一個聲明為 char 類型的字段里時,由于該字段僅占兩字節,所以高兩位的字節便會被截取掉,最終存入“\uFFFF”。
Java 虛擬機的算數運算幾乎全部依賴于操作數棧。也就是說,我們需要將堆中的 boolean、byte、char 以及 short 加載到操作數棧上,而后將棧上的值當成 int 類型來運算。
對于 boolean、char 這兩個無符號類型來說,加載伴隨著零擴展。舉例來說,char 的大小為兩個字節,在加載時 char 的值會被復制到 int 類型的低二字節,而高二字節則會用 0 來填充。
對于 byte、short 這兩個類型來說,加載伴隨著符號擴展。舉個例子,short 的大小為兩個字節。在加載時 short 的值同樣會被復制到 int 類型的低二字節。如果該 short 值為非負數,即最高位為 0,那么該 int 類型的值的高二字節會用 0 來填充,否則用 1 來填充。
以上就是關于“Java基本數據類型的知識點有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。