代码无法编译
byte a = 127;
byte b = 1;
byte c;
c = (a + b); //eror
System.out.println("The value of c=" + c);
编译器不会编译代码。
答案 0 :(得分:1)
Java默认将数字类型存储为int。尝试:
c = (byte)(a+b);
发生错误是因为整数(4个字节)不能包含在单个字节中而不会丢失信息,这就是编译器请求您明确进行此转换的原因。
此外,FYI - 单个短和字节声明实际上作为单个字存储在内存中(即4个字节),因此在限制数字大小时不会保存内存。数组不是这种情况,byte
或short
数组中的每个插槽实际上分别有1或2个字节。