Java基本数据类型转换
Java自动类型转换(由低到高)
java中整数类型默认是int类型;浮点型的数据默认是double类型。
精度小的数据使用精度大的数据接收会自动转换,精度大的数据使用精度小的数据接收会造成精度缺失,必须进行强转
对于byte、short类型的数据接收整数类型的字面量值只需要检查字面值是否超过有效值即可
byte b = 1;//编译通过
float f = 1;//编译通过,float的精度比int高,会自动转型
float g = 1.0;//编译报错,1.0默认表示double类型的浮点数,double的精度比float高,必须强转
float h = 1.0f;//编译通过
1.所有的byte,short,char类型的值被提升为int类型
byte a = 1;
byte b = 2;
byte c = a+b;//编译报错,a,b在运算时被自动提升为int类型,运算结果为int类型
int e = a+b;//编译通过
byte d = a+2;//编译报错,a在运算时被自动提升为int类型,字面量值2会跟随计算中的操作数转换类型
byte f = 1+2;//编译通过,字面量值类型自动转换成变量接收的类型
2. 如果有一个操作数是long类型的,计算结果为long类型
long a = 1;
int b = 2;
long c = a+b;//编译通过
int d = a+b;//编译报错
3. 如果有一个操作数是float类型的,计算结果为float类型
float a = 1;
int b = 1;
float c = a+b;//编译通过
int d = a+b;//编译报错
4. 如果有一个操作数是double类型的,计算结果为double类型
float a = 1.0f;
double b = 1.0;
float c = a+b;//编译报错
double d = a+b;//编译通过