由于Java是强类型语言,运算中,要将不同类型的数据转换为同一类型进行运算,所以当我们进行某些运算的时候,需要使用类型转换。
类型转换中,是有根据数据类型的容量大小(即字节大小)进行排序的,且小数优先级大于整数,直接上图:
根据优先级不同,类型转换又分为强制类型转换(高到低)和自动类型转换(低到高)
看个栗子:
这个就是一种强类型转换,从高转到低,格式为:(类型)变量名
但由于我特意加了内存溢出问题,即上述代码byte类型最大值只有127,所以输出结果为:
这里内存溢出在数据类型转换中要注意。
接下来是自动类型转换(低转高):
总结一下,四个注意点:
1.不能对boolean类型进行转换。
2.不能转换不相干的类型(不能把人变成猪)。
3.高容量转化为低容量时,强制转换,反之,不用动。
4.注意内存溢出问题。
这里再扩展一下:
当处理较大的数据时,可以用下滑线分割开来,且下划线不会被输出(jdk7新特性),当要注意溢出问题。
下面代码即为溢出:
怎么解决呢?
把输出结果转化为long类型?
如图:
输出结果还是溢出。
这说明我们的total1变量默认还是int类型,再转换之前就已经出问题了,这个时候我们只需要将上述两个int变量的其中一个转换为long长整型即可。
如图:
输出结果即为20000000000



