1
如何分配內存Java堆棧或堆中的靜態變量和靜態塊?如何分配內存Java中的靜態變量和靜態塊?
class A{
static int a;
static{}
public static void main(String args[]){
A h=new A();
}
}
當創建對象如何爲靜態堆棧或堆分配內存。
如何分配內存Java堆棧或堆中的靜態變量和靜態塊?如何分配內存Java中的靜態變量和靜態塊?
class A{
static int a;
static{}
public static void main(String args[]){
A h=new A();
}
}
當創建對象如何爲靜態堆棧或堆分配內存。
static
關鍵字在java中主要用於內存管理。我們可能會將static
關鍵字應用於變量,方法,塊和嵌套類。關鍵字static
屬於該類而不是該類的實例。
對於stactic
變量的內存分配僅在類加載到內存時發生一次。
所以,在這裏,一旦類是由classloader
加載內存將被分配給整數和stacic塊。
靜態方法(實際上所有方法)以及靜態變量都存儲在堆的PermGen部分。
數據可能比創建它的過程調用時間更長,通常分配在堆上。例如。新創建可能從過程傳遞到過程的對象。 堆的大小不能在編譯時確定。僅通過指針或引用(例如C++中的動態對象,Java中的所有對象)引用僅供參考,例如Java中的所有對象
過程的本地名稱在堆棧上分配空間。堆棧的大小不能在編譯時確定。
請參考下面的教程更多關於內存管理:http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf
我想知道堆棧或堆 – user2832497
我想知道的只是堆棧或堆 – user2832497
@ user2832497我編輯 –