变量有取值范围,当给变量的符值超过其取值范围时则会发生溢出。变量最终的值和预期的值会相差较大。
byte类型变量长度是一个字节(8位)取值范围是-128到127
short类型变量长度是两个字节(16位)取值范围是-32768到32767
int类型变量长度是四个字节(32位)取值范围是-2147483648到2147483647
long类型变量长度是八个字节(64位)取值范围是-9223372036854775808到9223372036854775807
public class VariableOverflow {
public static void main(String[] args) {
byte b = (byte) (100 + 100);
short s = (short)(30000 + 30000);
int i = 2147483647 + 5;
long l = 9223372036854775807L + 5L;
System.out.println("b = " + b);
System.out.println("s = " + s);
System.out.println("i = " + i);
System.out.println("l = " + l);
}
}
运行结果是:
b = -56
s = -5536
i = -2147483644
l = -9223372036854775804
注:变量使用时需要注意变量的取值范围,当变量计算的结果数值较大时应该使用取值范围更大类型的变量。
版权声明:本文为weixin_47439387原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。