java基础02

强制类型转换

强制转换(类型) 变量名   高-----低

自动转换     低-----高

int i =128

byte b=(byte)i //-128 内存会出现溢出问题(高到低转换)

double c=i //128.0 (自动转换)(低到高转换)

注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!

//强制类型转换

System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45
char n ='a';
int d =n+1;
System.out.println(d);//98
System.out.println((char) d);//b
溢出问题

操作比较大的时候溢出问题

JDJ7特性,数字之间可以用下划线分割

 

int money=10_0000_0000;
System.out.println(money);//1000000000
int year=20;
int total=money*year;
System.out.println(total);//-1474896480,计算时候溢出了
//如果改为Long类型
long total1=money*year;
System.out.println(total1);//-1474896480,因为默认是int,转换之前就已经存在问题了
long total2=money*(long)year;//先把一个数转换为long类型
System.out.println(total2);//2000000000




posted @ 2023-02-27 10:05  鼬先生。  阅读(18)  评论(0)    收藏  举报