JVM虛擬機原理調休實戰
- 前言
- JVM是什么?
- JVM記憶體分為幾個區,每個區的作用
- 如何判斷一個物件是否存在
- java中垃圾收集的方法有哪些?
- 你知道垃圾回收收集器有哪些?
- 垃圾回識訓制
- 記憶體占比
- 垃圾回識訓制
前言
作業了一年之久,JVM我還只是了解,說出來有點丟人,所以,我從今天開始,要開始學習JVM了,學習之后都會把我學到的知識發出來,大佬們可以看看我理解的有什么錯誤,歡迎指正批評,
JVM是什么?
這個問題是不是很深奧,這就是技術本質,
1.JVM+核心類別庫=JRE+開發工具=JDK,現在我用的是JDK8,
Java虛擬機中包括類加載子系統、執行引擎和JVM運行資料區,(明天寫類加載子系統,)今天主要說下JVM運行資料區,
正如上面所說的,JVM運行資料區 包括堆疊、本地方法堆疊、程式計數器、堆、方法區這五種,
JVM記憶體分為幾個區,每個區的作用
如何判斷一個物件是否存在
java中垃圾收集的方法有哪些?
你知道垃圾回收收集器有哪些?

存在執行緒安全的問題,
看上圖,今天主要介紹的是jvm運行資料區中的五大區域,
看到上面這個問題,我脫口而出:JVM包括堆疊、本地方法堆疊、程式計數器、堆、方法區,堆疊是先進后出,其中前面三個是執行緒私有的,后面兩個是執行緒共享的,每個方法代表一個堆疊幀,
垃圾回識訓制

記憶體占比
新生代1/3,老年代2/3
Dden :so:s1=8:1:1
垃圾回識訓制
當創建一個物件時,會存在堆的伊甸園區,那為什么叫伊甸園區,因為java之父信念基督教,基督教里面的圣經中寫道人類從伊甸園區創建,
只要有一個用戶登錄就會在伊甸園區創建一個物件,當創建的物件在記憶體中滿的時候,就會進行minor GC(垃圾回收),它先進行物件判斷,判斷是否可以回收,判定的依據是GC Roots(根的可達性判斷),如果這個物件沒有被參考,則會被回收掉,然后被參考的物件將會進入幸存區S0,然后用戶再次登錄,等伊甸園區慢的時候,進行第二次的monor GC,先進行物件判斷,判斷是否可以回收,判斷的已具是GC Roots(根的可達性判斷),如果這個物件沒有被參考,則會被回收掉,然后被參考的物件進入S1,S0中物件沒有被參考也會被回收掉,如果被參考,則進入S1,物件的年齡加1,在這期間有個閾值,當達到這個閾值時,物件會存入老年代,這叫物件晉升,當老年代的記憶體快滿的時候,在老年代會觸發full GC,當full GC產生時,會觸發stw(stop the world)停頓,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/108599.html
標籤:其他
