jvm基礎+調優+面試題
阿新 • • 發佈:2020-10-15
JVM學習第一天
java程式設計師在學學習開發中遇到的問題!!!!(是不是很有同感)!!!
虛擬機器概述
生命週期
JVM發展歷程
類載入器的作用
類的載入過程
1.載入(Loading)
2.連線(Linking)
3.初始化(Initialization)
類載入器分類
PC暫存器(程式計數器)
PC暫存器面試題
執行時資料區
記憶體中的棧和堆
棧
特點:先進後出
佇列:先進先出
棧中結構:
棧記憶體溢位;自己掉自己
堆
物件分配過程
記憶體分配策略
堆空間引數設定
總結
堆不是分配物件的唯一選擇,經過逃逸分析逃逸後的物件可以分配在棧上,但是目前逃逸分析技術並不成熟,無法保證逃逸分析的效能消耗一定能高於他的消耗。所有目前來說所有的物件分配還是在堆上
方法區
常量池
常見面試題
建立物件的步驟
String
面試題
垃圾回收GC
常用的垃圾回收演算法
標記階段:物件存活判斷
引用計數演算法(java沒有使用,容易記憶體洩漏)
可達性分析演算法(java選擇)
物件的finalization機制
清除階段
標記清除演算法
複製演算法
標記壓縮演算法
其他
分代收集演算法
增量收集演算法、分割槽演算法
引用(強引用,軟引用,弱引用,虛引用)
強引用(只要有引用,打死不回收,哪怕oom)
軟引用(記憶體不夠即回收)
弱引用(發現即回收)
虛引用(唯一目的就是能在這個物件被收集器回收時收到一個系統通知。)
GC回收器
小結
GC優化
//PicGo/image-20201014164714582.png" alt=“image-20201014164714582” style=“zoom:67%;” />
小結
[外鏈圖片轉存中…(img-gwY8iFVN-1602665665148)]