字节数据类型是8位带符号的二进制补码整数。它有 最小值为-128,最大值为127(含)。该 字节数据类型可用于在大型数组中保存内存,其中 记忆储蓄实际上很重要。它们也可以用来代替 int其限制有助于澄清您的代码;一个事实 变量的范围有限可以作为一种文档形式。
我在java文档中看到了这一点。我的问题是字节数据类型如何将内存保存在大型数组中?。我对此感到困惑
提前致谢....
答案 0 :(得分:8)
它的含义非常简单。
假设我有40个“数字”来存储。如果我将它们存储在以下内容中:
byte[] numbers = new byte[40];
它比我将它们存储在以下所需的空间更少:
int[] numbers = new int[40];
为什么呢?因为在一个数组中,40 byte
个实例占用40个字节的内存,但是40 int
个实例占用40 x 4 = 160字节的内存。
注意事项:
显然,只有当数字足够小才能表示为byte
时才会有效...没有溢出;即它们必须在-128到+127
这不适用于简单变量。在Java中,byte
变量和int
变量通常每个占用4个字节。 (这是一个低级别的JVM,需要大量解释......)
我正在掩盖堆内存可能以超过4个字节的粗粒度分配的事实。分配粒度通常为8个字节。但是,对于大型数组,分配粒度的贡献可以忽略不计。
答案 1 :(得分:1)
例如,你有一个1000000整数的数组。如果你使用int [],它将占用4Mb的内存。但是如果您知道所有值都在-128到127的范围内,则可以使用byte [],它将占用更少的内存