3
假設有是一個整數陣列在我的類:Java對象陣列的存儲器需求
public class Foo {
private Integer[] arr = new Integer[20];
.....
}
在64位架構此的空間需求是〜(20 * 8 + 24)+ 24 * 20 {空間需要引用+一些數組開銷+對象所需的空間}。
爲什麼java存儲對所有20個Integer對象的引用?不知道第一個內存位置和數組中的項數是否足夠? (假設我也在閱讀某個數組中的對象被連續放置的地方)。我想知道這種實施的原因。對不起,如果這是一個不好的問題。
如果你想要做Integer i = arr [3];'?你想引用確切的對象,而不是'arr + 3',因爲這個數組可能會在稍後被GC化。 – 2013-03-21 14:44:29
在Java中,所有東西都必須先初始化,然後才能真正開始使用它。默認情況下,引用類型數組的所有元素都被初始化爲'null'。 – 2013-03-21 14:48:20
該數組僅保存引用的空間,初始化爲'null'。你還沒有創建任何'Integer'對象。 – GriffeyDog 2013-03-21 14:51:13