上一篇 <<<自定義SPI和熱部署技術(shù)破壞類加載器的雙親委派模式
下一篇 >>>Java基礎(chǔ)-對象的引用類型
1.對象初始化過程
2.對象的存儲
對象不只存儲在堆上斋枢,還有棧上分配和內(nèi)存逃逸(JDK1.6.25之后出現(xiàn))
棧上分配:方法內(nèi)的對象只在當(dāng)前方法使用赃额,沒有其他地方使用掰曾,沒必要創(chuàng)建在堆里眶诈,這是分配在棧楨里的私有空間
public void a(){
Test t = new Test();
}
內(nèi)存逃逸:對象太大,或者會被其他方法調(diào)用儿咱,都會將對象存儲在堆中颁独,也就是從棧里逃到了堆中。
public Test a(){
return new Test();
}
3.對象引用的方式
句柄引用(使用句柄池就不用改變變量指針應(yīng)用):
直接引用(速度快):
具體用哪種是和我們的java虛擬機(jī)有關(guān)吨枉,常見hotSopt的虛擬機(jī)采用的是直接指針引用蹦渣。
4.對象的布局
對象的布局請參考Java基礎(chǔ)-對象布局
相關(guān)文章鏈接:
<<<JVM整體內(nèi)存結(jié)構(gòu)的圖解,直觀明了
<<<javap命令查看對象信息及操作方法在JVM層的實現(xiàn)原理
<<<javap命令反查匯編指令匯總
<<<ClassLoader類加載器順序Demo測試與雙親委派源碼解讀
<<<自定義SPI和熱部署技術(shù)破壞類加載器的雙親委派模式
<<<JVM元空間(方法區(qū))和棧內(nèi)存溢出原因及解決方案
<<<JVM堆內(nèi)存溢出和內(nèi)存泄露問題定位和解決
<<<JVM常見死鎖問題產(chǎn)生原因和多種診斷方式
<<<服務(wù)器CPU飆升為100%問題排查及如何避免
<<<JVM內(nèi)存診斷命令和排查工具匯總
<<<JVM新生代老年代算法匯總圖解
<<<JVM垃圾回收不要手動System.gc的真正原因
<<<JVM垃圾回收引用計數(shù)法和根搜索算法圖解
<<<JVM垃圾回收STW(Stop-The-World)代碼演示
<<<JVM垃圾回收器的發(fā)展歷程及使用場景匯總
<<<JVM串行并行垃圾回收器的關(guān)注點
<<<一張圖看懂CMS垃圾回收器的底層原理
<<<G1能作為JDK9默認(rèn)垃圾回收器的優(yōu)勢分析
<<<CMS和G1的漏標(biāo)問題解決及三色標(biāo)記算法圖解
<<<GC中新生代進(jìn)入老年代的方式匯總
<<<GC常用日志參數(shù)配置及分析工具說明
<<<FullGC貌亭、MinorGC柬唯、STW等常見問題如何解答
<<<JVM性能調(diào)優(yōu)的評估指標(biāo)及調(diào)優(yōu)示例