2010-08-13 62 views

回答

18

你可以認爲它一如既往在堆上。

我相信一些智能虛擬機能夠堆棧分配對象,如果他們能夠檢測到它是安全的 - 但從概念上說它在堆上。特別是,所有數組類型都是引用類型(即使元素類型是原始類型),所以array變量(位於堆棧上)僅僅是對對象的引用,並且對象通常位於堆上。

特別是,設想一個小的變化:

byte[] someMethod() { 
    byte[] array = { 0, 0 }; 
    return array; 
} 

如果數組是在棧上分配的,你會返回的引用都指什麼?

1

它將被存儲在堆中