Java基本數(shù)據(jù)類型
1.整形
| 類型 | 占用空間 | 取值范圍 |
|---|---|---|
| int | 4字節(jié) | -2147483648 - 2147483647 |
| short | 2字節(jié) | -32768 - 32767 |
| long | 8字節(jié) | -9223372036854775B08 - 9223372036854775807 |
| byte | 1字節(jié) | -128 - 127 |
Java的基礎(chǔ)數(shù)據(jù)類型的整形和浮點(diǎn)數(shù)都是帶符號(hào)的,即有正負(fù)之分,在與c語(yǔ)言寫(xiě)的程序進(jìn)行交互時(shí)要注意c語(yǔ)言中的無(wú)符號(hào)字符型數(shù)據(jù),一個(gè)byte的取值范圍是0-255,所以需要先將該字節(jié)轉(zhuǎn)換成int類型再執(zhí)行接下來(lái)的操作。
2.浮點(diǎn)類型
| 類型 | 占用空間 | 取值范圍 |
|---|---|---|
| float | 4字節(jié) | 大約 ±3.40282347E+38F |
| double | 8字節(jié) | 大約 ±1.79769313486231570E+308 |
浮點(diǎn)數(shù)不適合金融計(jì)算,因?yàn)槎?jí)制精確的表示每一個(gè)小數(shù),例如十進(jìn)制也無(wú)法表示1/3一樣,當(dāng)二進(jìn)制表示的數(shù)值的尾數(shù)操作浮點(diǎn)數(shù)的位數(shù)范圍,數(shù)值則會(huì)失真。這在金融計(jì)算中是不被允許的,所以在Java中進(jìn)行浮點(diǎn)數(shù)的四則運(yùn)算常用的是BigDecimal類。
public static void main(String[] args) {
double f1 = 2L;
double f2 = 1.1;
System.out.println(f1 - f2);
BigDecimal b1 = new BigDecimal(f1);
BigDecimal b2 = new BigDecimal(f2);
System.out.println(b1.subtract(b2).toString());
BigDecimal b3 = new BigDecimal(String.valueOf(f1));
BigDecimal b4 = new BigDecimal(String.valueOf(f2));
System.out.println(b3.subtract(b4).toString());
}
運(yùn)行結(jié)果
0.8999999999999999
0.899999999999999911182158029987476766109466552734375
0.9
如以上所示,當(dāng)使用字符串類型初始化BigDecimal類型時(shí),可以得到準(zhǔn)確計(jì)算結(jié)果
3.字符型
- char類型是一個(gè)單一的16位Unicode字符;
- 最小值是\u0000(即為0);
- 最大值是\uffff(即為65535);
- char類型可以儲(chǔ)存任何字符。
4.boolean型
boolean (布爾)類型有兩個(gè)值:false 和 true, 用來(lái)判定邏輯條件 整型值和布爾值之間
不能進(jìn)行相互轉(zhuǎn)換。