java的8種基礎型別

9龍發表於2019-04-09

一、基礎型別

Java 是一種強型別語言 。 這就意味著必須為每一個變數宣告一種型別 : 在 Java 中,一共有 8種基本型別 ( primitive type ) , 其中有 4 種整型2 種浮點型別 、 1 種用於表示 Unicode 編碼的字元單元的字元型別 char 和1 種用於表示真值的 boolean 型別

型別 儲存需求 取值範圍 預設值
byte 1位元組 -128 ~ 127 0
short 2位元組 -32768 ~ 32767 0
int 4位元組 -2^31 ~ 2^31 - 1(正好超過20億) 0
long 8位元組 -2^63 ~ 2^63 - 1 0L
float 4位元組 大約 ± 3.402 823 47 E + 38 F ( 有效位數為 6 ~ 7 位 ) +0.0F
double 8位元組 大約 ± 1.797 693 134 862 315 70 E + 308 ( 有效位數為 15 位 ) +0.0D
char 2位元組 使用unicode編碼,最大65535 '\u0000'
boolean 取決於虛擬機器,1位元組或4位元組。 true或false。所佔位元組大小參考:www.jianshu.com/p/2f663dc82… false

儘管它們的預設值看起來不一樣,但在記憶體中都是0。

二、Java語言中的boolean型別

在Java語言規範中,boolean型別的值只有兩種可能,它們分別用true和false來表示,顯然這兩種符號是不能被虛擬機器直接使用的。

Java虛擬機器規範中,boolean型別則被對映成int型別(4位元組)。Java 程式碼中的邏輯運算以及條件跳轉,都是用整數相關的位元組碼來實現得。具體來說,就是

true -> 1

false -> 0

這個編碼規則約束了Java位元組碼的具體實現。

舉個例子,對於儲存boolean陣列(1位元組)的位元組碼,Java虛擬機器需保證直接存入的值是1或0。

相關文章