Java基本数据类型
整数类型
byte 1个字节 默认值:0 取值范围:-2 ^ (8 - 1) ~ 2 ^ (8 - 1) - 1
short 2个字节 默认值:0 取值范围:-2 ^ (16 - 1) ~ 2 ^ (16 - 1) -1
int 4个字节 默认值: 0 取值范围:-2 ^ (32 - 1) ~ 2 ^ (32 -1) -1
long 8个字节 默认值: 0L 取值范围:-2 ^ (64 - 1) ~ 2 ^ (64 - 1) -1
浮点类型
float 4个字节 默认值:0.0f
double 8个字节 默认值:0.0
布尔类型
boolean 1个位 默认值:false
字符型
char 2个字节 默认值:' '
上述说的1个字节代表8个位
疑惑
疑问:为什么byte的最小值是-2 ^ (8 - 1),而不是-2 ^ 8
答:在存储时最高位作为符号位
疑问:为什么byte的最大值是2 ^ (8 - 1) -1,而不是2 ^ (8 - 1)
答:当符号位为0时,0也在其中
注意事项
// long类型建议在数值后面加L
long n = 1L;
// int类型超过21亿得考虑内存溢出的问题
int i = 2000000000;
int j = i * 5;
System.out.println(j); // 1410065408
// i * 5 先得出int类型再转化long
long l = i * 5;
System.out.println(l); // 1410065408
// 解决方法
long l1 = (long) i * 5;
System.out.println(l1); // 10000000000
float f = 0.1; // 错误
float f2 = 0.1f; // 正确
// 浮点型 有限的离散数据,舍入误差
float f1 = 0.1f;
double d1 = 0.1;
System.out.println(f1 == d1); //false
double d2 = 232323232323232323.0;
double d3 = d1 + 1;
System.out.println(d2 == d3); // true
// 综上所述 金额的表示推荐使用BigDecimal代替浮点类型
浙公网安备 33010602011771号