1.浮点型数据
(SE类库的源码位置在jdk中的src压缩包里)
- 在java语言中,所有的浮点型字面值,默认被当作double类型来处理,要想该字面值当作float来处理,需要在字面值后面添加F/f
以下是错误写法
float f=5.1;//这样会编译错误,大类型无法直接向小类型转换
正确写法
float f1=(float)5.1;//强制类型转换
float f2=5.1f;//在字面值后面添加f/F
2.布尔类型
- boolean类型占1个字节,false底层表示为0,true底层表示为1
- 布尔类型在开发中很重要,经常在逻辑运算和条件控制语句中使用
3.基本数据类型之间的转换
- 八种基本数据类型当中除了布尔型,剩余7种都可以相互转换
- 小容量向大容量转换,称为自动类型转换
- byte<shot=char<int<long<float<double
- 大容量转换为小容量必须要强制类型转换,但会损失精度
- 当字面值没有超过byte,short,char的取值范围,可以直接赋值
- byte,short,char混合运算的时候,各自先转换int类型再运算
- 多种数据类型混合运算的时候,先转换成容量最大的那个
4.举例
int a=10/3;//a=3,整数与整数运算的结果也是整数
double b=10/3;//b=3.0,将运算出的int类型的3,转换为3.0
double c=10.0/3;//c=3.33333333,将3转换为3.0,运算结构为double类型
//错误写法1
long d=10;
byte e=(byte)(int)d/3;//编译报错,虽然算法的结果是3,但是编译只检查语法,不进行运算
//错误写法2
short f=10;byte g=5;
short h=f+g;//byte和short混合运算,会将其转化为int类型,运算结果为int型,故编译报错