Java8種基本類型的存儲空間和使用場景
類型名稱 | 字節(jié)空間 | 使用場景 |
---|---|---|
byte | 1字節(jié)(8位) | 存儲字節(jié)數(shù)據(jù)(較常用) |
short | 2字節(jié)(16位) | 兼容性考慮(很少用到) |
int | 4字節(jié)(32位) | 存儲普通整數(shù)(常用) |
long | 8字節(jié)(64位) | 存儲長整數(shù)(常用) |
float | 4字節(jié)(32位) | 存儲浮點數(shù)(不常用) |
double | 8字節(jié)(64位) | 存儲雙精度浮點數(shù)(常用) |
char | 2字節(jié)(16位) | 存儲一個字符(常用) |
boolean | 1字節(jié)(8位) | 存儲邏輯變量(true / false)(常用) |
小知識:在日常工作中,如果需要精度計算時不要用double(double計算會缺失精度) 玩讳,需要用到BigDecimal
int類型:
int是最常用的整數(shù)類型涩蜘,一個int類型的變量占用4個字節(jié)(32位),最大標(biāo)識范圍 -2147483648~2147483647熏纯。
在命名int類型的變量時不要超過了int的表達(dá)范圍同诫。
兩個整數(shù)相除,會舍棄小數(shù)的部分(不是四舍五入)樟澜,結(jié)果也是整數(shù)误窖。
整數(shù)運算的溢出:正數(shù)過大而產(chǎn)生的溢出,結(jié)果為負(fù)數(shù)秩贰,相反負(fù)數(shù)過大而產(chǎn)生的溢出贩猎,結(jié)果為正數(shù)。
long類型:
表示整數(shù)時萍膛,如果int類型的范圍不夠,可以使用long類型嚷堡,一個long類型的變量占用8個字節(jié)(68位)最大范圍為: -9223372036854775808~9223372036854775808 蝗罗。
要表示long類型,需要以 L / l 結(jié)尾蝌戒。
對于較大的整數(shù)運算(大于int的范圍)時串塑,可以使用long類型
double類型:
double類型的精度是float類型的兩倍,這正是其名稱雙精度的由來
-
浮點的變量有兩種寫法:
- 通常寫法:3.14北苟、0.1
- 科學(xué)計數(shù)法:1.25E2桩匪、1.25e2
默認(rèn)的浮點變量都是double類型,如果使用float類型友鼻,需要在變量初始值后面加上 F / f
double和folat的運算會缺失精度(剛才上基本類型哪里已經(jīng)介紹了傻昙,所以就不多說了)。
char類型:
字符類型事實上是一個16位無符號整數(shù)彩扔,這個值是對應(yīng)字符的編碼妆档。
Java字符類型采用Unicode字符集編碼,Unicode是世界通用的定長字符集虫碉,所有的字符都是16位
-
使用char類型變量賦值:
- 字符直接量:‘A’贾惦,變量中實際存儲的是該字符的Unicode編碼,一個char類型的變量只能存儲一個字符。
整數(shù)直接量:范圍在0~65535之間的整數(shù)须板,變量中實際存儲的即該整數(shù)值碰镜,但表示的是該整數(shù)值所對應(yīng)的- Unicode字符。
Unicode形式:"\u0041"习瑰,Unicode字符的16進制绪颖。
boolean類型:
boolean類型適用于邏輯運算,表示某個條件是否成立杰刽,一般用于程序的流程控制菠发。
boolean類型只允許取值 true / false ,true表示條件成立贺嫂,而false表示條件不成立滓鸠。
boolean類型變量經(jīng)常用于存儲關(guān)系的運算結(jié)果,所謂關(guān)系運算就是比較兩個變量的大小相等關(guān)系第喳。
基本類型之間轉(zhuǎn)換:
不同的基本類型直接可以互相轉(zhuǎn)換糜俗,但是強轉(zhuǎn)類型時,可能會造成精度缺失和溢出
多種基本類型參與的表達(dá)式運算中曲饱,運算結(jié)果會自動的向較大的類型進行轉(zhuǎn)換
-
byte悠抹、char、short三種類型實際存儲的數(shù)據(jù)都是整數(shù)扩淀,在實際使用中遵循如下規(guī)則:
int直接量可以直接賦值給byte楔敌、char、short驻谆,只要不超過范圍即可卵凑。
byte、char胜臊、short三種類型參與運算時勺卢,需要先轉(zhuǎn)換成int類型,在進行運算操作象对。