栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

多维数组声明中的顺序对已用内存有影响吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多维数组声明中的顺序对已用内存有影响吗?

是的,确实有所作为。

在Java中,2D数组是1D数组的数组,并且数组(像所有对象一样)除具有保存元素本身所需的空间外,还具有标头。

因此,请考虑

int[10][2]
vs和
int[2][10]
,并假设使用32位JVM。

  • int[2][10]
    由2个元素的一个数组和10个元素的2个数组组成。总计-3个数组对象+ 22个元素。
  • int[10][2]
    由10个元素的一个数组和2个元素的10个数组组成。总计-11个数组对象+ 30个元素。

如果我们假设标头大小是3个32位字(对于32位JVM通常如此),而引用是1个32位字,则

  • int[2][10]
    需要3 * 3 + 22 * 1 = 31个字= 124字节
  • int[10][2]
    需要11 * 3 + 30 * 1 = 63个字= 252个字节

应用相同的逻辑,您可以估计具有更大维数的数组的大小。

但是很明显,如果最大的尺寸是最右边的尺寸,则可以使用较少的空间。


我已经完成了

int
数组的数学运算,但是在32位计算机上,an
int
和a
reference
占用相同数量的字节。在64位计算机上,引用的大小可以与
int
或相同
long
,具体取决于JVM选项。标头大小也可能不同....不确定…可能取决于平台。

我没有考虑容纳

Bitmap
对象本身所需的空间,但是无论如何组织数组都一样。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号