Java中數組在內存中的存放原理?

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/yangyong0717/article/details/79165685
Java中數組被實現為對象,它們一般都會因為記錄長度而需要額外的內存。對于一個原始數據類型的數組,一般需要24字節的頭信息再加上保存值所需的內存,其中24字節的頭信息分別包含以下幾個部分。

?

下面分別分析一維、二維、三維的數組存儲情況。

下面首先對一維數組進行分析,以int[]型數組為例,假設數組長度為N,那么需要的內存占用(24+4N)個字節,原因分析比較簡單,圖解示例如下:即占用內存總量=頭信息內存+數組N個int值占用內存。

?

?

對于二維數組進行分析,首先對于多維數組的概念,大家可以參考這篇博客:https://www.cnblogs.com/chenyangyao/p/5222696.html

多維數組實際存儲的時候就是一維數組,高維數組不斷的降維轉化為低維數組,例如二維數組就是一個數組的數組,即每一個一維數組里面包含一個另外一個一維數組的引用。以一個MxN的double類型的二維數組為例,其實際占用內存總量為:(8MN+32M+24) 約等于8MN。這里仍然以圖示進行講解:(這里以64位架構的計算機為例,每個對象引用地址為8位)

?

對于三維數組的分析,仍然以M x N x Q的double數組為例,與上面的分析過程類似,可以將三維數組轉化成一個一維數組,該一維數組保存指向二維數組的引用。對于二維數組的分析過程則和上面的過程一樣。

則占用的內存總共為:24 + 8M + M*(24 + 8N) + M*N(24 + 8Q)字節。

對于更高維的數據存儲容量,可以按照相似的方法進行分析即可。
---------------------
作者:yangyongUestc
來源:CSDN
原文:https://blog.csdn.net/yangyong0717/article/details/79165685
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

轉載于:https://www.cnblogs.com/weizhxa/p/11119521.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277411.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序員如何面試才能拿到offer

一、概述 面試,難還是不難?取決于面試者的底蘊(氣場技能)、心態和認知及溝通技巧。面試其實可以理解為一場聊天和談判,在這過程中有心理、思想上的碰撞和博弈。其實你只需要搞清楚一個邏輯:“面試官為什么會…

php 跨區域,如何構造PHP的內容包括在非安全(http://)和安全(https://)區域以及跨多個目錄使用?...

只需使用//example.com/foo.blah即可.< img id “sample-image”src “// /media/sample-image.png”/>很明顯,HTTP是協議,但存在其他協議,如GOPHER,HTTPS,FTP等……而不是在gopher URL gopher&#xff1a;//example.com上,您只需鏈接到//example.com,協議就可以在沒有它…

Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)閱讀筆記

弱監督目標檢測相對于一般的目標檢測任務來說&#xff0c;訓練樣本不需要實例級別的標注&#xff0c;只需要圖片級別的標注&#xff0c;即告訴圖片中有什么而不需標注位置信息&#xff0c;這種標注圖片容易獲取&#xff0c;能節省標注時間及精力。現有的大部分方法在進行若監督…

如何添加JWT生成的token在請求頭中

前言 在我們使用JWT來做用戶的驗證時&#xff0c;我們登陸生成對應的token,并加入到請求的參數中發送到后臺提供相關的權限校驗。這個時候我們需要使用到傳遞請求頭參數傳遞的問題&#xff0c;下面是兩種方式。 1.ajax提交方式 1&#xff09;.方法一&#xff1a; $.ajax({ type…

Gradle 使用技巧(二) - SO/NDK過濾

引言 作為一個Android開發人員&#xff0c;so對于我們來講是極其常見的&#xff0c;各種大廠的SDK中都包含著各種各樣的so&#xff0c;而so也是apk瘦身的重要一環&#xff0c;減少so平臺的數量&#xff0c;可以極大限度的減少apk的大小。 Android 中的so 先看一張官方的圖&…

java兩個數之間質數求法,求任意兩個整數之間質數的個數的代碼!!!(新手編寫)...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓/*** Title:Calculate acount of prime number between preNum and rearNum;* Author: public* Time&#xff1a;2008.12.5 21:09:35*/import java.awt.*;import java.awt.event.*;class Arithmetic{//將計算質數個數的類封裝在此類…

VMware——安裝CentOS

VMware——安裝CentOS 摘要&#xff1a;本文主要記錄了在VMware虛擬機里安裝CentOS的步驟。 下載操作系統 可以從下面的鏡像地址去下載各種版本的CentOS&#xff0c;此次安裝使用的版本是7.2&#xff1a; http://archive.kernel.org/centos-vault/ http://mirror.nsc.liu.se/ce…

django1.4.9 OMserverweb站點管理

1.項目setting.py配置&#xff1a; 2.項目url.py配置&#xff1a; 錯誤提示&#xff1a;auth_user這個表沒有創建&#xff0c;那個因為,admin站點默認數據表需要遷移。執行python manage.py syncdb 會創建所有應用程序需要的數據庫表4.接下來就是根據要求一步一步來&#xff1a…

matlab讀取氣象數據,基于MATLAB實現3種氣象數據的讀取和繪圖

第 29卷第 4期 2007年 11月 廣 東 氣 象 GuangdongMeteorology Vol. 29  No. 4 November 2007 基于 MATLAB實現 3種氣象數據的讀取和繪圖 劉  峰 , 劉  娟 , 李  萍 , 林  智 (民航中南空中交通管理局氣象中心 ,廣東廣州  510406)   摘  要 :針對 M ICAPS、 GR IB和…

[USACO17JAN]Promotion Counting 題解

前言 巨佬說:要有線段樹&#xff0c;結果蒟蒻打了一棵樹狀數組... 想想啊&#xff0c;奶牛都開公司當老板了&#xff0c;我還在這里碼代碼&#xff0c;太失敗了。話說奶牛開個公司老板不應該是FarmerJohn嗎&#xff1f; 題解 剛看到這道題的時候竟然沒有想到深搜&#xff0c;然…

牛客小白月賽6 水題 求n!在m進制下末尾0的個數 數論

鏈接&#xff1a;https://www.nowcoder.com/acm/contest/135/C來源&#xff1a;牛客網 題目描述 其中&#xff0c;f(1)1;f(2)1;Z皇后的方案數&#xff1a;即在ZZ的棋盤上放置Z個皇后&#xff0c;使其互不攻擊的方案數。 輸入描述: 輸入數據共一行&#xff0c;兩個正整數x,m&am…

centos php7 apcu,centos php5.4 升級 php7

接上篇&#xff0c;edusoho需要php5.5以上版本&#xff0c;于是需要升級本地phpphp是通過yum默認安裝的。以下安裝參考 linkhttps://blog.csdn.net/u012569217/article/details/77506902因此先查看本地php版本php -v檢查當前php的安裝包yum list installed | grep php將本地php…

子類訪問父類和方法覆寫

子類不能直接訪問父類的私有成員&#xff1b; 但是子類可以調用父類中的非私有方法來間接訪問父類的私有成員。 Person類中有私有字段name,Student繼承Person new Sudent().name; new Student().getName(); √ 子類拓展父類&#xff08;子類是父類的一種特殊…

面向對象筆試題練習一

1.接口只能被類實現&#xff0c;類不能繼承接口&#xff0c;遵循單繼承多實現原則&#xff1b; 2.靜態方法中不能引用其外部的非靜態成員&#xff1b; 3.實現 Runnable 接口&#xff0c;接口中有一個抽象方法 run&#xff0c;實現類中重寫該方法&#xff1b; 4.public修飾的方法…

curl 升級 php,將命令行cURL轉換為PHP cURL

我從來沒有做過任何卷曲&#xff0c;所以需要一些幫助。我試圖從例子中解決這個問題&#xff0c;但無法理解它&#xff01;我有一個curl命令&#xff0c;我可以從linux(ubuntu)命令行成功運行&#xff0c;該命令行通過api將文件放入wiki。我需要將這個curl命令合并到我正在構建…

VM-ESXI 相關常用命令(Updateing)

# ESXI計劃任務路徑&#xff1a;cat /var/spool/cron/crontabs/root # 獲取虛擬機列表vim-cmd vmsvc/getallvms獲取vm狀態vim-cmd vmsvc/power.getstat [vmid]關閉虛機vim-cmd vmsvc/power.shutdown [vmid]vim-cmd vmsvc/power.off [vmid] # 強制關閉長期腳本存放路徑 vi /etc/…

sql server中的go

1. 作用:向 SQL Server 實用工具發出一批 Transact-SQL 語句結束的信號.2. 語法:一批 Transact-SQL 語句GO如Select 1Select 2Select 3GO3. 說明:1) GO 不是 Transact-SQL 語句&#xff1b;2) 它是 sqlcmd 和 osql 實用工具以及 SQL Server Management Studio 代碼編輯器識別的…

java 圖片緩存工具,java緩存讀取圖片解決方案

java緩存讀取圖片老師布置了任務&#xff0c;需要把數據庫中的圖片一緩存的形式讀出&#xff0c;不要說什么數據庫中路勁&#xff0c;圖片整體較大&#xff0c;在給別人使用時不現實。關鍵代碼&#xff1a;for(int i0;i<1;i){downloadDB(bi);pm[i]new paintimage(bi);}publi…

杭電Acm刷題順序

第一階段&#xff1a;開始入門吧&#xff01;&#xff08;15天&#xff0c;53題&#xff09; 一&#xff0e;輸入輸出練習&#xff08;2天&#xff0c;10題&#xff09; 1000、1089—1096、1001 二&#xff0e;簡單操作&#xff1a;&#xff08;2—4天&#xff0c;12題&…

[Vue CLI 3] 源碼系列之useTaobaoRegistry

通過下列方式可以安裝最新版本的 Vue CLI&#xff08;注釋&#xff1a;sudo 自行選擇&#xff09; sudo npm install -g vue/cli然后通過下列命令創建項目&#xff1a; vue create demo這時候&#xff0c;會詢問你是否使用 taobao 的 registry Your connection to the default …