由于Java是强类型语言,所有我们在进行有些运算的时候,需要用到类型转换。
低-------------------------------------------------------------->高
byte,short,char -> int -> long -> float -> double
运算中,不同类型的数据先转化为同一类型,然后进行运算。
从低到高,自动转换
从高到底,强制转换 (类型)变量名
注意事项- 不能对布尔类型(Boolean)进行转换;不能把类型转换成毫不相干的类型,比如说总不能把人转换成猪吧,但是我们可以把男人转换成女人,最起码都是人;把高容量转换成低容量的时候要强制转换,反之自动转换;强制转换的时候要注意出现存在内存溢出的情况;
- 强制转换的时候还要注意精度问题;
JDK7新特性,数字之间可以用_分割,并且不会对数字造成影响。
操作比较大的数字也要注意内存溢出的问题。
我们看到这里第一想到的肯定是强转为Long类型。
这是因为g和h默认是int类型,在我们用Long类型转换的时候已经计算过了,所以它是在转换之前就已经出现问题了,那么该如何解决呢?看下图:



