JVM筆記

棧幀是棧里面存儲的基本單位

一個線程對應一個虛擬機棧

一個虛擬機棧中有很多棧幀

一個棧幀對應一個方法

棧幀里面有局部變量表 、 操作數棧 、動態(tài)鏈接 、返回地址 、一些附加地址

操作數棧在方法創(chuàng)建的時候為空 動詞就是操作棧

push 把值放到操作數棧中

load_1 從變量表中取出數據放到操作數棧

store 從操作數棧中取出數據到變量表中

一個進程對應一個JVM實例

一個進程有多個線程

一個JVM有一個運行時數據區(qū)

設置棧大小的指令

-Xss 256k

設置堆空間大小

-Xms 初始堆空間大?。ㄐ律?老年代)

-Xmx 最大堆空間大小

-XX:+PrintGCDetails 顯示堆區(qū)的數據

-NewRatio: 設置新生代與老年代的比例。默認值是2

-XX:SurvivorRatio:設置新生代Eden中eden區(qū)與Survivor區(qū)的比例

-XX:-UseAdaptiveSiePolicy :關閉自適應內存分配

※ 測試堆空間常用的JVM參數

-XX:+PrintFlagsInitial? 查看所有參數的默認值

-XX:+PrintFlagsFinal 查看所有的參數的最終值

-Xms? ? 初始堆空間內存(默認為物理內存的1/64)

-Xmx? ? 最大堆空間內存(默認為物理內存的1/4)

-Xmn 設置新生代的大?。ǔ跏贾导白畲笾担?/p>

-XX:NewRatio 配置新生代與老年代在堆結構的占比

-XX:SurvivorRatio 設置新生代中的Eden和s0/s1空間的比例

-XX:MaxTenuringThreshold 設置新生代垃圾的最大年齡

-XX:+PrintGCDetails 輸出詳細的GC處理日志

-XX:HandlePromotionFailure? 是否設置空間配置擔保

-XX:Metaspacesize=100m

-XX:MaxMetaspacesize=100m

-XX:UseG1GC 啟用G1GC

※? JDK1.8 堆存放靜態(tài)變量 字符串常量池? 對象

? ? 方法區(qū) 存放 類型信息? 域信息? 方法信息? 代碼緩存? 運行時常量池

多線程編程步驟

上部

? 第一部步 創(chuàng)建資源類,在資源類創(chuàng)建屬性和操作方法

中部

? 第二部 在資源類操作方法

? 1. 判斷

? 2. 干活

? 3. 通知

下部

? 創(chuàng)建多個線程,調用資源類的操作方法

? 第四步 防止虛假喚醒問題

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容