1. 程式人生 > >java虛擬機器棧與本地方法棧

java虛擬機器棧與本地方法棧

java虛擬機器棧:

   虛擬機器棧描述的是java方法執行的記憶體模型,每個方法在執行的同事都會建立一個棧幀用於儲存區域性變量表、運算元棧、動態連結,方法出口燈資訊。每一個方法從呼叫直至執行完成的過程,就對應著一個棧幀在虛擬機器棧中入棧到出棧的過程。

在java虛擬機器規範中,對這個區域規定了兩種異常狀態,:如果執行緒請求的棧深度大於虛擬機器所允許的深度,將丟擲StackOverflowError異常,如果虛擬機器棧可以動態擴充套件,如果擴充套件時無法申請到足夠的記憶體,就會丟擲OutOfMemoryError異常。

  對於大多數應用來說,java堆是java虛擬機器所管理的記憶體中最大的一塊。java堆是被所以執行緒共享的一塊記憶體區域,在虛擬機器啟動時建立。此記憶體區域的唯一目的就是存放物件例項,幾乎所有的物件例項都在這裡分配記憶體 。