2014-04-08 110 views

回答

1

static關鍵字在java中主要用於內存管理。我們可能會將static關鍵字應用於變量,方法,塊和嵌套類。關鍵字static屬於該類而不是該類的實例。

對於stactic變量的內存分配僅在類加載到內存時發生一次。

所以,在這裏,一旦類是由classloader加載內存將被分配給整數和stacic塊。

靜態方法(實際上所有方法)以及靜態變量都存儲在堆的PermGen部分。

數據可能比創建它的過程調用時間更長,通常分配在堆上。例如。新創建可能從過程傳遞到過程的對象。 堆的大小不能在編譯時確定。僅通過指針或引用(例如C++中的動態對象,Java中的所有對象)引用僅供參考,例如Java中的所有對象

過程的本地名稱在堆棧上分配空間。堆棧的大小不能在編譯時確定。

請參考下面的教程更多關於內存管理:http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf

+0

我想知道堆棧或堆 – user2832497

+0

我想知道的只是堆棧或堆 – user2832497

+0

@ user2832497我編輯 –