0
我只寫了一個包含自定義類--- Event的程序。它有5個可變成員,帶有get和set方法。代碼在這裏。我的自定義對象有多少個字節?
public class Event {
private String CaseID;
private String Activity;
private int StartTime;
private int CompleteTime;
private String Notes;
}
現在我很困惑,因爲事件類的每個對象在IDE分析器結果中佔用32個字節。但實際上它應該比這更大。每個String對象在我的計算機中至少需要18個字節。我想你可能不相信字符串對象的計算,所以我添加一個包含解釋的鏈接。 Memory usage of String in Java。
對象引用應該表示爲64位,因爲我的電腦是64位系統。另外,它應該是那個字節,對吧?有任何想法嗎? –
這裏是鏈接.http://stackoverflow.com/questions/981073/how-big-is-an-object-reference-in-java-and-precisely-what-information-does-it-co –
@SHUYULYU正如該鏈接指定的那樣,您的JVM可能會使用Compressed Oops,在這種情況下,它們可能是32位或4個字節。這實際上與你所看到的一致:對象頭部有8個字節,對於三個'String'引用有12個字節,對於兩個'int'字段有8個字節,爲了對齊的原因產生了28個字節,然後JVM必須使它8字節的倍數,所以它最多可以達到32個字節。 –