Java中一个byte是多少个字节,如果byte数组的长度是1024,是1mb的大小吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中一个byte是多少个字节,如果byte数组的长度是1024,是1mb的大小吗?相关的知识,希望对你有一定的参考价值。
1byte 就是1个字节1byte = 8bit
1KB = 1024 byte
1MB = 1024 KB
所以如果byte数组的长度是1024,应该是1KB的大小 参考技术A byte是一个字节,是八位。
1024个byte是1KB
java中的byte有啥作用
参考技术A 在今天,byte字节就是一个八位元组,使用其它位数的机器都进了博物馆。 java也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。不幸的是,byte的用作计数的时间远少于用表达基本内存单元的时间。比如从stream里读入一个双字节字符,我们先收到2个byte。为了把byte转换成适当的形式,需要对byte值做一些比较,比如判断字符集要比较其是否在某个编码范围内,比如GBK 0x8140~0xFEFE,然后new适当的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 两段,注意当与literal比较时,java自动将literal识别成int 可以用 下面的小程序来验证: 1 public class JavaByte 2 3 public static void main(String[] args) 4 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 11 12 当收到(0xC7B0)这个GBK字符时,要判断 0x81 <= 0xC7 <= 0xFE 是否成立,实际变成判断 -127 < -57 < -2,唔,万幸,可以直接比较 low < ch < high。如果要判断 0x00 <= 0xC7 <= 0x80 (ASC Char),这回麻烦了,变成判断 (0 <= -57 <= 127) || ( 0x57 == -128 )。比较简单的办法用 (b+256)%256的办法令其值回到0~255,或者用&0xff并赋给一个int。考虑到jvm里的byte其实也是32位的,所以在计划用byte的地方,直接用integer并不会有什么实际的损失,而 DataInputStream也提供了一个readUnsignedByte()方法返回的是int。所以真正的解决方案是忘掉byte,直接上 int。至于为什么java没有unsigned数据类型,照下面这个interview里Jams Golsing的意思,应该是java应该简单而unsigned算术过于复杂了会让大多数程序员产生误解误用:以上是关于Java中一个byte是多少个字节,如果byte数组的长度是1024,是1mb的大小吗?的主要内容,如果未能解决你的问题,请参考以下文章
java的byte数组最多存储多少字节?只用FileInputStream读取文件和只用FileOutputStream写入文件会出问题吗