字节数据类型是8位带符号的二进制补码整数.它的最小值为-128,最大值为127(含).字节数据类型可用于在大型阵列中保存内存,其中节省的内存实际上很重要.它们也可用于代替int,其限制有助于澄清您的代码; 变量范围有限的事实可以作为一种文档形式.
我在java文档中看到了这一点.我的问题是字节数据类型如何将内存保存在大型数组中?.我对此感到困惑
提前致谢....
它的含义非常简单.
假设我有40个"数字"来存储.如果我将它们存储在以下内容中:
byte[] numbers = new byte[40];
Run Code Online (Sandbox Code Playgroud)
如果我将它们存储在下面,它将占用更少的空间:
int[] numbers = new int[40];
Run Code Online (Sandbox Code Playgroud)
为什么?因为在一个数组中,40个byte实例占用40个字节的内存,但40个int实例占用40 x 4 = 160个字节的内存.
注意事项:
显然,这仅在数字足够小以表示为byte......而没有溢出时才有效; 即它们必须在-128到+127的范围内
这不适用于简单变量.在Java中,byte变量和int变量通常每个占用4个字节.(这是一个低级JVM的东西,需要很多解释......)
我正在掩盖堆内存可能以比4字节更粗糙的粒度分配的事实.分配粒度通常为8个字节.但是,对于大型阵列,分配粒度的贡献可以忽略不计.
| 归档时间: |
|
| 查看次数: |
1621 次 |
| 最近记录: |