天天看點

JVM記憶體管理深度剖析,GC算法與底層原理

1. JVM就是将java位元組碼 .class .jar  翻譯成作業系統能識别的機器碼。這樣就實作了跨平台性。

程式計數器:在時間片輪轉的時候,指向目前線程正在執行的位元組碼指令的位址。由于它占用的記憶體很小,是以它是唯一不會OOM的記憶體區域。

虛拟機棧:存儲目前線程運作方法所需的資料,指令、傳回位址

所有線程共享的資料區裡面包括有:方法區和堆區。他們的主要差別是:方法區包含類資訊/常量/靜态變量/即時編輯期編譯後的代碼。堆區存放的都是對象執行個體和數組。那麼為什麼要将他們區分開昵?原因是:堆是經常動态的建立和回收的,可以頻繁的回收的,方法區是靜态的,不會經常回收的。

Java堆的大小參數設定 -Xmx 堆區記憶體可被配置設定的最大上限 -Xms 堆區記憶體初始記憶體配置設定的大小 X: 表示