第十讲——类型转换
第十讲——类型转换
- 因为JAVA是强类型语言,所以在不同类型时,需要用到类型转换
低------------------------------------------------------------------------------------->高
byte(Z字节) short char-->int-->long-->float(浮点数)-->double
- 运算中,不同类型的数据,先转换成同一类型再进行计算。
强制类型转换
自动类型转换
强制类型转化
高(转换)——>低
public class demo01{
public static void main(String[]args){
int i = 128;
byte i2 =(byte)i;
//强行转换的格式 (类型)变量名
System.out.println(i2);//这里会输出-128
//这个就是内存溢出,大的转换小的,小的吃不下,溢出了
}
}
- 强制转换要小心数据溢出
public class demo02{
public static void main{
char a ='A';
int b = a+1;
System.out.println((char) b);
//输出B 因为转换类型为char了 是字符
System.out.println((int)a);
//输出65 大写A编码是65 +1后变成66就是B了
}
}
自动类型转换
低———>高
public class demo03{
public static void main(String[]args){
int i2 =1314;
double i3= i2;
System.out.println(i3);
//这里会输出1314.0 因为double是浮点数
}
}
- 从低到高会自动转换而且不会有误差
强制转换的计算方法
使用场景是在用低级类型时候,计算溢出的解决方案
public class demo04{
public static void main(String[]args){
int money = 10_0000_0000;
int years = 22;
System.out.println(money*years);
//这个时候输出值为525163520 数据大于21亿所以溢出了
long total = money*years;
System.out.println(total);
/*还是输出原值,原因是虽然total值是long,但是money和years还是int值
,这里做的运算也就是把int类型算出来的数据,给total ,所以输出的值还是没变*/
System.out.println((long)money*years);
//在运算其中数据换算成long才能解决,默认改变一个就全都改变
}
}
years yes
money
total to透
如果你有梦想 就努力去实现 就这样

浙公网安备 33010602011771号