1. 程式人生 > >(jvm-java虛擬機器)棧,堆,方法區的關係

(jvm-java虛擬機器)棧,堆,方法區的關係

                 很多人雖然會些一些程式碼,但是並不知道這些資料,程式碼適怎樣執行實現的,那我們就要來看看jvm(也就是java虛擬機器)。

                 java虛擬機器其實就是java程式執行的一個載體,java程式啟動時,java虛擬機器也就會相應的啟動,當java程式的所有執行緒都結束的時候,自然而然的,載體也會停止工作

jvm在啟動的過程中,會開啟虛擬機器自身的執行緒,比如說垃圾回收執行緒(是一種守護執行緒),還有java程式的執行緒,建立的執行緒名,物件名,變數名,都放在jvm中的棧中,而執行緒

物件字串,new的物件,變數,都會放在堆中,最後,變數的值,就會放在方法區中,方法區和堆都是共享的,通過上述的描述,其實總結來說就是這樣的,jvm虛擬機器上的機制

很多,單單從資料的呼叫,物件的建立方面來說的話,堆,棧,方法區,其實就是一個命運的共同體,它們其實就是一個整體,比如說,一個String b=new String(“test”); 我現在

new了一個物件b這個物件名放在棧中,b這個物件值(物件字串)放在堆中,"test"就會放到方法區中,這個分工的機制,更大程度上提升了程式執行的速度。