int數組佔用多少空間?或者int數組消耗多少空間(字節),看起來像這樣:如何在int數組中分配內存
int[] SampleArray=new int[]{1,2,3,4};
內存分配語言是否特定?
謝謝大家
int數組佔用多少空間?或者int數組消耗多少空間(字節),看起來像這樣:如何在int數組中分配內存
int[] SampleArray=new int[]{1,2,3,4};
內存分配語言是否特定?
謝謝大家
既然你添加的語言標記了很多,我想要寫C#。在C#中,這取決於操作系統。
對於32位,每個int
爲4字節和4字節也可用於參考的對象,使得4 * 4 + 4 = 20字節
對於64位,每個int
爲4字節和8字節也用於參考該對象,這使得4 * 4 + 8 = 24字節
從C# 5.0 in a Nutshell在第22頁;
每個引用一個對象需要額外的四個或八個字節, 取決於.NET運行是否是在一個32位或64位 平臺上運行。
因此,當我使用32位操作系統時,它使得它成爲80字節...你也可以解釋字節作爲參考,這是我被困住的地方 – Rohit
還有12個字節的數組對象本身的開銷(對於32位代碼) –
@MatthewWatson那12個字節是什麼? –
問題是:內存分配語言是否特定? 是存儲器分配是語言specific..it根據語言而異.. 爲EXP: 的sizeof(int)的* 4在Java
INT大小是4字節,以便內存消耗:4×4 = 16字節
這取決於語言,而且還取決於操作系統。
你需要4個整數。通常一個整數是2或4個字節(在大多數系統上大多數是4),但要確保檢查sizeof(int)。 (也請記住,根據操作系統的不同,值可能會有所不同),例如MSB優先或LSB優先(或者在使用4個字節的情況下混合使用)。
在Java中int [] array是由頭部(8字節爲x86)和int長度字段(4字節)後跟int數組(arrayLength * 4)的內存表示的對象。
approxSize = 8 + 4 + 4 * arraylength
多看這裏http://www.javamex.com/tutorials/memory/object_memory_usage.shtml
您忘記了'C'和'phtyon'標籤。 –
這是非常特定的語言。首先選擇一種語言。 – Joni
在java中,頭部分應該是固定大小的,並且對齊添加是可變的,因此對於64位系統/ os/jvm,它必須大於elementNumber * 4 + 8。 –