服务器之家

服务器之家 > 正文

Java中数组在内存中存放原理的讲解

时间:2021-07-30 11:51     来源/作者:yangyongUestc

java中数组被实现为对象,它们一般都会因为记录长度而需要额外的内存。对于一个原始数据类型的数组,一般需要24字节的头信息再加上保存值所需的内存,其中24字节的头信息分别包含以下几个部分。

Java中数组在内存中存放原理的讲解

下面分别分析一维、二维、三维的数组存储情况。

下面首先对一维数组进行分析,以int[]型数组为例,假设数组长度为n,那么需要的内存占用(24+4n)个字节,原因分析比较简单,图解示例如下:即占用内存总量=头信息内存+数组n个int值占用内存。

Java中数组在内存中存放原理的讲解

对于二维数组进行分析,首先对于多维数组的概念,大家可以参考这篇文章:http://www.zzvips.com/article/154585.htm

多维数组实际存储的时候就是一维数组,高维数组不断的降维转化为低维数组,例如二维数组就是一个数组的数组,即每一个一维数组里面包含一个另外一个一维数组的引用。以一个mxn的double类型的二维数组为例,其实际占用内存总量为:(8mn+32m+24) 约等于8mn。这里仍然以图示进行讲解:(这里以64位架构的计算机为例,每个对象引用地址为8位)

Java中数组在内存中存放原理的讲解

对于三维数组的分析,仍然以m x n x q的double数组为例,与上面的分析过程类似,可以将三维数组转化成一个一维数组,该一维数组保存指向二维数组的引用。对于二维数组的分析过程则和上面的过程一样。

则占用的内存总共为:24 + 8m + m*(24 + 8n) + m*n(24 + 8q)字节。

对于更高维的数据存储容量,可以按照相似的方法进行分析即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/yangyong0717/article/details/79165685

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部