JVM其他常見面試題
阿新 • • 發佈:2020-12-18
1、簡單介紹一下JavaGC的新生代和老年代
這個GC 的新生代和老年代的劃分是基於分代假說來的,所謂的分代假說指的是極大多數物件都是朝生夕滅,存活週期非常短,但是由少數的物件的存活週期非常長,所以就出現了兩極分化現象,如果按照這個現象來分割槽儲存物件,對每個分割槽的物件採用不用的垃圾回收演算法,這樣回收的效率就會比較高。
2、虛擬機器棧和本地方法棧為什麼是私有的?
保證執行緒中的區域性變數不被別的執行緒訪問到,虛擬機器棧和本地方法棧是執行緒私有的。3、OOM問題和StackOverflow
1.OOM問題
1. 棧記憶體溢位: 建立新執行緒,為該執行緒分配虛擬棧記憶體時, 記憶體空間不足
2. 堆記憶體溢位: 為物件例項分配記憶體空間時, 記憶體空間不足
3. 方法區溢位: 載入類檔案時, 記憶體空間不足以上是 總的記憶體空間不足!!
2.StackOverflow
執行緒呼叫方法,jvm壓入一個棧幀到該執行緒虛擬機器棧中。
如果遞迴呼叫的層數過多,棧幀總和超過設定的值,則stackoverFlow異常
是棧內記憶體空間不足!!