我和我的計算機科學老師討論了JAVA中一個類佔用多少內存。我們都不知道具體的答案,但我有幾個他無法回答的問題。如何確定我的類使用了多少內存?
1)是否像每個類的原始數據類型使用的字節數量是什麼決定其內存使用一樣簡單?
2)如果您創建了一個類的實例並將其設置爲null,它是否仍佔用與非空實例相同數量的字節?
3)一個包含100個字符的字符串是否與單個字符串具有相同的字節數量?
4)如果一個類沒有變量,沒有方法,沒有什麼,只是看起來是這樣的:
public class Test{}
將它仍然佔用內存?
根據定義,實例不爲null。變量可以存儲'null'引用,但實例是實際的對象。 –
我認爲vm有空間可以決定,但我認爲每個變量都有一個引用的大小(或者對某些原語來說可能更少),而對象的引用點(它大約是其基元的大小加上vtables等支持OOP)。通過該邏輯1)否2)否3)多一點點4)是參考 – user3125280
閱讀['Thinking in Java']中的第42-43頁(http://pervasive2.morselli.unimo.it/~nicola/課程/ IngegneriaDelSoftware/java/ThinkingInJava.pdf)來了解存儲信息的位置。如果你的老師確實無法回答這些問題,他/他沒有商業教學Java。 –