JAVA基础语法-类型转换
-
由于JAVA是强类型语言,所以要进行有i额运算的时候,需要用到类型转换
-
![]()
-
运算中,不同类型的数据先转化为同一类型,然后进行预算。
-
强制类型转换:高到低需要强制
-
自动类型转换:低到高自动转换就可以
public class dome04 {
public static void main(String[] args) {
int i=128;
byte b=(byte) i;//数据不一,内存溢出
//这属于是强制转换 (类型)变量名 从高--低需要强制转换
//自动转换 从低--高
double c=i;//输出成为小数,因为double比int级别高,这属于是自动转换
/*
* 注意点:
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型,通俗一点讲不能把一个人变成猪,但是可以把男人变成女人
* 3.在把大容量转换到低容量的时候需要强制转换
* 4.转换的时候可能存在内存溢出,或者精度问题*/
System.out.println("============");
float d=23.7f;
double e=45.89;
System.out.println((int) d);//输出为23,精度存在问题
System.out.println((int)e);//输出为45,精度存在问题
System.out.println(c);
System.out.println(i);
System.out.println(b);
System.out.println("===================");
char f='a';
int g=f+1;
System.out.println(g);//输出出来是数字,因为char本身有Unicode编码表,也是由数字组成的。
System.out.println((char)g);//强行转换,输出字母,因为char本身有Unicode编码表,也是由数字组成的。
System.out.println("====================");
//操作比较大的时候,注意溢出问题
int money=10_0000_0000;//数字之间可以用下划线分割,方便查看。
int years=20;
int total=money*years;
System.out.println(total);//输出结果为负数,计算溢出
long total2=money*years;
System.out.println(total2);//输出结果没有变化,计算溢出,默认是int,转换之前已经存在问题了?不能这样去做!
long total3=money*((long)years);//先把一个数转换为long
System.out.println(total3);//输出结果正确,先把一个数转换为long
}
}

浙公网安备 33010602011771号