首页 > 其他 > 详细

类型转换

时间:2021-02-28 15:29:44      阅读:21      评论:0      收藏:0      [点我收藏+]
public class demo2 {
public static void main(String[] args) {

//低------------------------------------->高
//byte,short,char->int->long->float->double

int i = 128;
byte b = (byte)i;//byte不能直接定义int,需要加byte转换。
double d = i;//自动转换

//强制转换 (类型)变量名 高-->低
//自动转换 低-->高

System.out.println(i);
System.out.println(b);//无法输入128是因为byte最大为127,128超过了内存上限,导致内存溢出
System.out.println(d);

System.out.println((int)11.1);//转换为11,精度丢失
System.out.println((int)22.2f);//转换为22,精度丢失

int money = 1_000_000_000;//JDK7特性数字之间可以用下划线分割
int year = 20;
int total = money*year;
System.out.println(total);//-1474836480,计算的时候溢出了
long total1 = money*year;
System.out.println(total1);//-1474836480,默认是int,转换之前已经存在问题了

long total3 = money*(long)year;
System.out.println(total3);//20000000000,计算过程中提升了等级会提升所有,所以得出正确答案



/*
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候,强制转换,反之没有影响
4.转换的时候可能存在内存溢出,或者精度问题(在浮点数是遇到)!
*/




}
}

类型转换

原文:https://www.cnblogs.com/JoeyZhu/p/14458267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!