java数据类型自动提升运算
8种基本数据类型:
byte,short,int,long,float,double,char,boolean
其中除boolean以外的7种数据类型变量之间可以及进行运算(因为布尔类型变量只有true和false)
自动类型提升:
byte, short, char >>int >> long >> float >> double
class VariableTest2 {
public static void main(String[] args) {
byte b1 = 2;
int i1 = 129;
//int i2 = b1 + i1;
float i2 = b1 + i1;//至少使用int及以上的数据类型
System.out.println(i2);
char c1 = 'a';//a的数值为97
int i3 = 10;
int i4 = c1 + i3;至少使用int及以上的数据类型
System.out.print(i4);
byte b2 = 3;
short s1 = 123;
int i5 = b1 + b2;//注意byte, short, char 三者之间的运算都将自动提升至int,继续使用其中任意一个编译报错
int i6 = b1 + s1;
System.out.println(i5);
System.out.println(i6);
//强制类型转换
double d1 = 12.3;
int i7 = (int)d1;//截断操作符()
System.out.println(i7);//损失精度 //12
byte b3 = (byte)i1;
System.out.println(b3);//-127
}
}
131.0
107
5
125
12
-127
两种特殊的情况:
long l1 = 123123;//编译通过,默认123123为int型,相当于从int提升至long
//long l2 = 99999999999999999;//编译不通过
float f1 = 12.3f;//float型浮点数必须加上f
//默认为double型