类型转换
转换的等级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ul5ez45H-1628252063118)(C:\Users\ykw\AppData\Roaming\Typora\typora-user-images\image-20210806193040528.png)]
强制类型转换
强制类型转换方法
- (类型)变量名
- 高容量–>低容量
题目
- - 因为byte大小范围是-128到127,i=128超过byte的最大值,所以内存溢出,改变了b的值
自动类型转换
自动类型转换方法
- 低容量–>高容量
题目
由此可见,从低的int类型到高的类型double不需要加什么类型名
类型转换的注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换;反之,自动转换
- 转换的时候可能存在内存溢出,或者精度问题
精度问题
- - 由int转换为float或double时,丢失了精度
- - 由低容量char到高容量int,值变为了数字98;由高容量int到低容量char,需要强制转换,值为b
溢出问题
- - total的值明显不对,计算的时候溢出了
- - long total2也不行,因为后面的值默认类型为int,结果得到的值已经溢出
- - 正确的方法是先把一个数的类型转换为Long,然后得到的值才是正确的