数据类型
基本数据类型
整数类型
- byte(占1字节): -128~127
- short(占2字节)
- int(占4字节)
- long(占8字节): 定义该类型需要在后面加上 L(如:long var = 1234L;)
浮点类型
- float(占4字节): 定义该类型需要在后面加上 F(如: float var = 12.34F)
- double(占8字节)
浮点类型是不精确的,存在舍入误差的情况。因此,不要用浮点类型的数作比较
银行业务这类高精准的需求,使用BigDecimal类
字符类型
- char(占2字节): 只能定义一个字符
注意:string不是基本数据类型,它是一个类,属于引用数据类型
要点
不同的数据类型进行运算,需要先转化为同一数据类型
数据类型的优先级(从低到高):byte-short-char-int-long-float-double
类型转换时,要考虑到内存溢出和精度的问题
//内存溢出问题
int var1 = 128;
byte var2 = (byte)var1;
System.out.println(var2); //结果:-128
//按道理var2应该是128,但实际上byte类型范围是-128~127,所以内存溢出,结果是-128
//精度问题
float var3 = 12.34F
double var4 = 12.34
System.out.println((int)var3); //结果:12
System.out.println((int)var4); //结果:12
高优先级转低优先级需要强制转化,低优先级转高优先级的数据类型是自动转化
int var1 = 128;
//高到低 int->byte
byte var2 = (byte)var1;
//低到高 int->double
double var3 = var1;
boolean类型
(占1位)值为 true 或 false
引用数据类型
- 类
- 数组
- 接口
要点
数据类型确定后,会有默认值
基本数据类型中数值类型默认为0或0.0,boolean类型默认为false
引用数据类型默认为null,但需要注意的是若数组内的元素类型是基本数据类型中的数值类型,那么默认值也是0或0.0