jvm簡單筆記(3)

一、jvm,java virtual Machine其實就是虛擬在計算機上的一個計算機,可是他和vmware又不同,後者是能看到的,而jvm 是看不到的,他是在內存中。java

二、jvm有個部分叫作class loader,把類加載到虛擬機中執行就靠他。其實對class文件的格式jvm是有判斷的。可是判斷的工做並非這個class loader,而是jvm的另外一部分解釋器 execution engine。jvm

三、jvm有個部分叫作棧,遵循先進後出的原則,保存的是基本數據類型,他的工做模式能夠這裏來理解,好比最開始調用方法A,A就被壓縮在棧的底部,可是A方法又調用了B方法,再執行到B方法的時候B方法又被壓縮進了棧內在棧頂,因此B是後進可是會等B方法執行完成後跳出棧,先出來,出來後繼續輪到A方法執行完,以後A執行完就線程結束棧也釋放。線程

四、jvm有一個部分叫堆,堆內存分爲三個部分,第一個是永久存儲區其實就是上次說的持久代,新生區就是上次說的年輕代,養老區其實就是上次說的年老區。新生區又分伊甸區Eden Space和倖存者區 survivor Space,對象都是在伊甸區這裏建立的,這個區滿了就會放到倖存者0區,0區滿了就會放到倖存者1區,1區還滿了的話就會被放到年老區就是養老區,垃圾回收也是這樣的流程。對象

五、持久區也叫永久存儲區,他存放的東西就是像java class,還有類變量就是靜態變量,不是靜態變量的叫作實例變量。內存

相關文章
相關標籤/搜索