JAVA强制类型转换原理

强制转换类型别

1 小容量转换成大容量直接转换;
2 大容量转换成小容量需要用强制转换符,虽然加上强制转换符编译可以通过但是可能会损失精度!所以强制类型转换要谨慎使用,因为损失精度之后可能损失非常严重。

强制转换原理

比如 Long类型转换为int类型
原始数据(long)00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100
强制转换后的数据: 00000000 00000000 00000000 01100100
(将左边二进制砍掉,所有数据强制转换都是这样完成的)
上述是:
long x = 100L;
int y = (int)x;
system.out.println(y);
的转换。所以说是有精度损失的,上面这个还好在左边全都是0所以不影响 如果是一些所有字节都在二进制占数字的话就会有很大的精度损失,甚至可能正负数变换。

Byte特殊之处

在JAVA中因为单纯的数字一般认为是int型但是,一个没有超过byte取值范围的数字赋值给byte是可以直接赋值输出的(不用强制转换),因为java就是这样规定的

上一篇:Wine Bug笔记


下一篇:为什么 HashMap 的容量大小要设置为2的N次方?