Java是強(qiáng)類型語言废封,對(duì)于每一種數(shù)據(jù)都定義了具體的數(shù)據(jù)類型,在內(nèi)存中分配了不同大小的內(nèi)存空間瘫俊。
1.整型
- 整數(shù)默認(rèn)int
- 長(zhǎng)整型數(shù)值有一個(gè)后綴 L / l
- 十六進(jìn)制數(shù)前面加 0X / 0x
- 二進(jìn)制數(shù)前面加 0b / 0B
- 八進(jìn)制數(shù)前面加 0 (容易混淆复局,不要用)
- 可以為數(shù)字字面量加下劃線顷帖,如1_000_000 (更易讀鞠绰,java編譯器會(huì)移除他們)
- Java沒有任何無符號(hào)類型
- 在Java中穷躁,所有的數(shù)值類型所占據(jù)的字節(jié)數(shù)與平臺(tái)無關(guān)(P48)
2. 浮點(diǎn)數(shù)
- float有效位數(shù)6~7位忍抽,數(shù)值后面加 F/ f 捶索,沒有加的默認(rèn)為double
- double有效位數(shù)15位插掂,可以加后綴 D / d
- 可以使用16進(jìn)制表示浮點(diǎn)數(shù),0.125可以表示成0x1.0p-3腥例。
- 三個(gè)特殊的浮點(diǎn)數(shù)值:
- 正無窮大
Double.POSITIVY_INFINITY
(如正整數(shù) / 0 ) - 負(fù)無窮大
Double.NEGATIVY_INFINITY
(0/0或者負(fù)數(shù)的平方根) -
NaN Double.NaN
-
注意:
x==Double.NaN
是錯(cuò)誤的辅甥,因?yàn)樗蟹菙?shù)值的值都認(rèn)為是不同的,但可以使用Double.isNaN(x)
-
注意:
-
警告:命令
System.out.println(2.0-1.0)
將打印出0.899999999999999燎竖,而不是0.9璃弄。其主要原因是浮點(diǎn)數(shù)之采用二進(jìn)制表示,而在二進(jìn)制中無法精確表示1/10构回,如果需要在數(shù)值計(jì)算中不含任何舍入誤差夏块,應(yīng)該使用BigDecimal類。
- 正無窮大
3.char類型
- char占兩個(gè)字節(jié)
- Java語言采用的是Unicode編碼纤掸。
思考題 :Java語言中的字符char可以存儲(chǔ)一個(gè)中文漢字嗎脐供?
可以,因?yàn)镴ava語言中的字符占兩個(gè)字節(jié)借跪,一個(gè)中文漢字占兩個(gè)字節(jié)政己。
4.boolean類型
- boolean有兩個(gè)值,true和false
注意:整型值和布爾值之間不能進(jìn)行相互轉(zhuǎn)換掏愁。