byte[] a={'w',1,1,1};
for(byte b:a){
System.out.println(b);
}
这样子输出的都是整数
那么这个字节数组跟整形数组又有什么区别呢
在内部存储上有区别,byte数组每个元素只有一个字节,而整型数组每个元素哟4个字节(由于涉及多字节,还可能存在字节序问题)。此外,byte类型和整型表示的整数范围是不一样的。
虽然输出的是整数,那是因为在byte的范围-127-128之间(因为byte占一个字节,8位),
当单个大于128时,使用字节数据就会报错了(而使用int不会报错,因为占4个字节,32位)。
byte数组里面的数字最大127也就是 1111 1111 8位二进制 而int占了4个byte的空间
所以最大能表示 1111 1111 1111 1111 1111 1111 1111 1111的二进制数。请给我好评
一个byte是一个字节,一般的整形int是4个自己,占用内存不同,存储的数据长度不同,可以看下这篇文章http://58coding.com/article/detail/24633146704146387
byte类型大小只有一个字节,而int类型是4个字节的,显然当你表示的数大于byte的最大值的时候就会出问题了