我需要存儲大量的我的類的實例,因爲我有一個非常可怕的計算機只有2GB的RAM,我需要它儘可能少的內存使用情況下運行。所以誰能告訴我有更多的字段或數組是更有效的。我不關心做這件事的「最佳方式」,我需要使用最少RAM的方式。那麼,是一個數組還是很多領域?Java什麼是更高效的內存明智?
回答
你的問題有點不清楚,但基本上類
public class SomeClass {
int var1;
int var2;
...
int var100;
}
將採取儘可能多的空間作爲int[100]
陣列。根據平臺的不同,可能會有一些細微差別,但總共不超過16個字節,並且可以採取任何方式。 (你可以代替int
替代任何其他數據類型,同樣的事情會是真的。)
但是,僅僅是明確的,無論是上述佔用對象超過100多空間較小,每片含一個int
。
數組並不以任何方式壓縮對象,它只是命令它們。所以字段或數組會有相同的內存開銷。
也就是說,擁有一組對象(或者一個List
)將會更好地保持對象的收集和整合。
如果必須訂購它們,它可能會使用更多的RAM來存儲List/Array的順序嗎? –
你的意思是按順序存儲元素嗎?不同的集合實現將使用不同數量的內存。但坦率地說,考慮到JVM在啓動和運行時會使用多少內存,所使用的任何集合實現所使用的數量都可以忽略不計。 – Marvo
一般來說'List'或'Array'會比'[]'數組佔用更多的存儲空間 - 可能只是另外16個字節,或者兩倍多,具體取決於細節。 –
- 1. 什麼是更高效的堆棧內存或堆?
- 2. 什麼是適合Linux的高效內存高效的文本查看器?
- 3. Java:內存高效ByteArrayOutputStream
- 4. 在java中解析XML的內存效率最高的方法是什麼?
- 5. 什麼是落實好/內存高效的方式這
- 6. 在Java中導入更高效的是什麼?
- 7. 在java中更高效的是什麼? If-return-else或If-return?
- 8. 什麼是資源效率更高?
- 9. 循環控制,什麼是更高效
- 10. 最明智的做法是什麼?
- 11. 什麼是使用wcf客戶端的最佳方式? (內存明智)
- 12. 什麼是更好的方法性能明智
- 13. 什麼是高iOS內存使用量?
- 14. 高效使用Java堆內存
- 15. 內容明智而不是頁面明智的PDF比較庫
- 16. 什麼是更快/更高效的CSS樣式
- 17. VCS結構項目明智或平臺明智的最佳做法是什麼?
- 18. 內存高效multivaluemap
- 19. 內存明智的子視圖操作
- 20. 爲什麼OCaml中的遞歸比C++或Java更高效?
- 21. 智能緩存與內存的Java
- 22. 什麼是確定鏈接度量的簡單高效的內存算法?
- 23. 爲什麼虛擬內存分配是遠遠高於居民的內存分配更高的解釋語言
- 24. 什麼是html5的有效聲明?
- 25. numpy.array_split的高效反操作是什麼?
- 26. 什麼是最高效的SQL查詢?
- 27. 迭代java集合的性能高效方法是什麼?
- 28. 什麼是高效且安全的Java RPC選項?
- 29. 「利用」java調用值是明智的
- 30. 爲什麼高效訪問需要內存對齊4?
如果你瞭解Java,你會意識到它沒有任何區別。如果我在堆上創建了100個對象,那麼將它們的引用分配給100個單獨的字段或100個數組元素(除了數組本身的一個額外引用之外)沒有區別。 – duffymo
你能給我們一個代碼示例嗎? – Brad
如果您可以使用較短的字段,如'short','char'或'byte',這可以節省一些內存。 –