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