day03 learning

类型转换

由于java是强类型选择器,所有要进行有些运算的时候,需要用到类型转换

低----------->高

byte,short,char-->int-->long-->float-->double

运算中,不同类型的数据先转化为同一类型,然后进行运算。

 

强制类型转换

int i = 128;
byte b = (byte)i;  

此处为强制类型转换,由高到低。此时打印b会为-128,因为内存溢出了。

自动类型转换

int i = 128;
double b = i;  

此处为自动类型转换,由低到高。正常打印b为128.

 

溢出问题

//操作比较大的数的时候,注意溢出问题
//jdk7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;  //-1474836480,int类型不能超过21亿
long tatal2 = money*years;             //计算的时候已经溢出了,int类型不能超过21亿
long tatal3 = money*((long)years);      //计算时,已经正确转换结果
System.out.println(total);  //此处输出溢出结果

System.out.println(tatal3);   //此时结果正常

 

最后代码的规范性,在表示long数值型最后的l应该大写为L,让代码更加规范。例如129182.128L

posted @ 2020-10-13 23:28  Strive_ToLife  阅读(62)  评论(0编辑  收藏  举报