Java 字节数据类型如何有助于在大型阵列中节省内存
字节数据类型是一个8位有符号2的补码整数。它有 最小值为-128,最大值为127(含)。这个 字节数据类型可用于在大型阵列中节省内存,其中 节省内存实际上很重要。它们也可以用来代替 int,它们的限制有助于澄清代码;事实上 变量的范围是有限的,可以作为文档的一种形式 我在java文档中看到了这一点。我的问题是字节数据类型将如何在大型数组中保存内存?我对此感到困惑Java 字节数据类型如何有助于在大型阵列中节省内存,java,byte,Java,Byte,字节数据类型是一个8位有符号2的补码整数。它有 最小值为-128,最大值为127(含)。这个 字节数据类型可用于在大型阵列中节省内存,其中 节省内存实际上很重要。它们也可以用来代替 int,它们的限制有助于澄清代码;事实上 变量的范围是有限的,可以作为文档的一种形式 我在java文档中看到了这一点。我的问题是字节数据类型将如何在大型数组中保存内存?我对此感到困惑 提前感谢….例如,您有一个1000000个整数的数组。如果使用int[],将占用4Mb内存。但是如果你知道所有的值都在-128到127
提前感谢….例如,您有一个1000000个整数的数组。如果使用int[],将占用4Mb内存。但是如果你知道所有的值都在-128到127的范围内,你就可以使用byte[],它占用的内存将减少4倍 假设我要存储40个“数字”。如果我将它们存储在以下位置:
byte[] numbers = new byte[40];
int[] numbers = new int[40];
与我将它们存储在以下位置相比,它将占用更少的空间:
byte[] numbers = new byte[40];
int[] numbers = new int[40];
为什么??因为在一个数组中,40个byte
实例占用40个字节的内存,而40个int
实例占用40 x 4=160个字节的内存
注意事项:
byte
。。。无溢流;i、 e.它们必须在-128到+127之间
byte
变量和int
变量通常各占用4个字节。(这是一个需要大量解释的低级JVM问题…)
事实上,当您将文件加载到内存中时,通常使用字节数组。这是做这件事的最佳方式。