Java基本数据类型
1.整形
类型 | 占用空间 | 取值范围 |
---|---|---|
int | 4字节 | -2147483648 - 2147483647 |
short | 2字节 | -32768 - 32767 |
long | 8字节 | -9223372036854775B08 - 9223372036854775807 |
byte | 1字节 | -128 - 127 |
Java的基础数据类型的整形和浮点数都是带符号的,即有正负之分,在与c语言写的程序进行交互时要注意c语言中的无符号字符型数据,一个byte的取值范围是0-255,所以需要先将该字节转换成int类型再执行接下来的操作。 |
2.浮点类型
类型 | 占用空间 | 取值范围 |
---|---|---|
float | 4字节 | 大约 ±3.40282347E+38F |
double | 8字节 | 大约 ±1.79769313486231570E+308 |
浮点数不适合金融计算,因为二级制精确的表示每一个小数,例如十进制也无法表示1/3一样,当二进制表示的数值的尾数操作浮点数的位数范围,数值则会失真。这在金融计算中是不被允许的,所以在Java中进行浮点数的四则运算常用的是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());
}
运行结果
0.8999999999999999
0.899999999999999911182158029987476766109466552734375
0.9
如以上所示,当使用字符串类型初始化BigDecimal类型时,可以得到准确计算结果
3.字符型
- char类型是一个单一的16位Unicode字符;
- 最小值是\u0000(即为0);
- 最大值是\uffff(即为65535);
- char类型可以储存任何字符。
4.boolean型
boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件 整型值和布尔值之间
不能进行相互转换。