自动类型转换——位数低的类型数据可以自动转换成位数高的类型数据
——图片来自百度
public class ZiDongLeiXingZhuanHuan {
public static void main(String[] org) {
short s=3; //定义一个short类型变量
int i=s; //short自动类型转换为int
float f=1.0f; //定义一个float类型变量
double d1=f; //float自动转换为double
long l=234L; //定义一个long类型变量
double d2=l; //long自动类型转换为double
System.out.println("short自动类型转换为int后的值等于"+i);
System.out.println("float自动类型转换为double后的值等于"+d1);
System.out.println("long自动类型转换为double后的值等于"+d2);
}
}
运行s
short自动类型转换为int后的值等于3
float自动类型转换为double后的值等于1.0
long自动类型转换为double后的值等于234.0
long类型数字后面为什么一定要加L?
此问题参考long类型数字后为何+L,float类型数字后为何+F? - 风雪依稀秋白发尾 - 博客园 (cnblogs.com)
新建一个类,输入代码运行
public class ZiDongZhuanHuan2 {
public static void main(String[] args) {
int l=234234234; //定义一个long类型变量
float d=l; //int自动类型转换为double
System.out.println("int自动类型转换为float后的值等于"+d);
}
}
运行结果
int自动类型转换为float后的值等于2.3423424E8
public class ZiDongLeiZhuan3 {
public static void main(String[] args) {
char c1='a'; //定义一个char类型
int i1=c1; //char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2='A'; //定义一个char类型
int i2=c2+1; //char类型和int类型计算
System.out.println("char类型和int类型计算后的值等于"+i2);
}
}
char自动类型转换为int后的值等于97
char类型和int类型计算后的值等于66
由此可知,int类型计算是通过ascii码计算值
——图片来自百度
——图片来自百度