java数据类型中关于数据溢出的一些事情
byte表示整型变量;
在java中的存储的内存范围在-128-127之间,占用一个字节。
对于理解数据类型的值溢出可以有一些比喻实例:
比如:有一大杯水,但是里边只剩几口了。这时我们可以将其倒入到其他更小的杯子中,这时可以用小杯子喝水。
其中的大杯子表示范围更大的数据类型,而小杯子表示数据范围小的。
现在举个实际例子:当int类型的数据存储到了一个12的值,我们要将其赋值给byte类型的数据,
int a = 12;
byte b;
b = a;
这时候整型数据的int范围超过了字节类型的范围,编译器报错。
我们需要将其转换为int类型的数据才能保存。
也就是说:
b = (byte)a; //编译通过
再回过头来说明就是,假如当大杯子的水的容量超出了小杯子的容量时,发生了溢出的现象。我们在程序中叫做精度溢出。当然你也可以说,大杯子水的容量只要不超过小杯子的容量就可以了,但是编译器为了避免出现有不合理的事情发生,所以就将这种情况列为了出错。
而小杯子里的水无论如何都可以倒入到大杯子里。
byte b = 127;
int a;
a = b; //程序正确