- 自动类型转换
容量小的类型自动转换成容量大的类型
byte、short、int 三者在计算时会自动转换成int类型
int转换成float,或者long转换成double,不需要强制转换,但是可能丢失精度。
package day2;
public class dataConversion {
public static void main(String[] args) {
byte b=10;
short s=b;// byte类型转换为short
System.out.println("byte类型转换为short "+s);
int i=s;// short类型转换为int
System.out.println("short类型转换为int "+i);
int ii=121215511;
float f=ii; // int 转换成float 精度可能会丢失
double d=ii; //int 转换成double 精度可能会丢失
System.out.println("int 转换成float "+f);
System.out.println("int 转换成double "+d);
}
}
运行结果:
byte类型转换为short 10
short类型转换为int 10
int 转换成float 1.21215512E8
int 转换成double 1.21215511E8
- 强制类型转换
byte、short、int 三者在计算时会自动转换成int类型
下方代码中s1类型为short,类型不匹配,需要把s1+1的结果强制转换成short类型
package day2;
public class dataConversion1 {
public static void main(String[] args) {
short s1=10;
s1=(short)(s1+1);//强制类型转换
System.out.println(s1);
}
}