02_2数据类型转换
1. 基本数据类型转换
1.1boolean类型不可以转换为其他的数据类型
1.2整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
1.2.1容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:
byte,short,char->int->long->float->double
byte,short,char之间不会互相转换,他们三者在计算时首先回转换为int类型
1.2.2容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能精度降低或溢出;使用时要格外注意。
1.2.3有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。
1.2.4实数常量(如:1.2)默认为double
1.2.5整数常量(如:123)默认为int
1.3例
public void method() {
int 1, j;
//j=12; 此处j未做初始化
float f1=0.1; float f2=123;
//此处f1未做强制转换 f1=0.1f;或f1=(float)0.1;
long l1=12345678, l2=888888888888888888888;
//l2超出范围,l2=888888888888888888888L;
double d1=2e20, d2=124;
byte b1=1, b2=2, b3=129;
//b3超出范围 b3=127;
j=j+10;
i=i/10;
i=i*0.1;
//需要强转 i=(int)i*0.1;
char c1=’a’, c2=125;
byte b=b1-b2;
//byte b=(byte)(b1-b2);
byte c=c1+c2-1;
//byte c=(char)(c1+c2-1);
float f3=f1+f2;
float f4=f1+f2*0.1;
//float f4=(float)(f1+f2*0.1);
double d=d1*i+j;
float f=(float)(d1*5+d2);
}