原創申明:本文由公眾號【猿燈塔】原創,轉載請說明出處標注 “365篇原創計划”第十四篇。 今天呢!燈塔君跟大家講: JVM源碼分析之JVM啟動流程 前言: 執行Java類的main方法,程序就能運行起來,main方法的背后,虛擬機究竟發生了什么?如果你對這個感興趣 ...
要分析JVM的源碼,結合資料直接閱讀是一種方式,但是遇到一些想不通的場景,必須要結合調試,查看執行路徑以及參數具體的值,才能搞得明白。所以我們先來把JVM的源碼進行編譯,並能夠使用GDB進行調試。 編譯環境 本文使用的JDK版本:OpenJDK ,分支b 下載頁面:https: download.java.net openjdk jdk 下載地址:http: download.java.net o ...
2020-02-05 20:40 1 2245 推薦指數:
原創申明:本文由公眾號【猿燈塔】原創,轉載請說明出處標注 “365篇原創計划”第十四篇。 今天呢!燈塔君跟大家講: JVM源碼分析之JVM啟動流程 前言: 執行Java類的main方法,程序就能運行起來,main方法的背后,虛擬機究竟發生了什么?如果你對這個感興趣 ...
想要深入了解JVM,就必須了解其實現機制。了解JVM實現的最好方法便是自己動手編譯JDK。好了,讓我們開始吧! 1. 准備工作 獲取OpenJDK源碼 本次編譯選擇的是OpenJDK7u,官方源碼包:https://jdk7.java.net ...
“365篇原創計划”第十二篇。 今天呢!燈塔君跟大家講: JVM源碼分析之synchronized實現 java內部鎖synchronized的出現,為多線程的並發執行提供了一個穩定的環境,有效的防止多個線程 ...
前言 一、准備源碼 二、安裝 "Bootstrap JDK" 三、配置編譯環境 四、編譯與測試 五、安裝 CMake 和 GDB 五、准備遠程調試 六、開始遠程調試 前言 上一篇文章介紹了幾種 JVM,接下 ...
原創申明:本文由公眾號【猿燈塔】原創,轉載請說明出處標注 “365篇原創計划”第十一篇。 今天呢!燈塔君跟大家講: JVM源碼分析之Java對象頭實現 HotSpot虛擬機中,對象在內存中 ...
JVM加載類的時候,需要記錄類的元數據,這些數據會保存在一個單獨的內存區域內,在Java 7里,這個空間被稱為永久代(Permgen),在Java 8里,使用元空間(Metaspace)代替了永久代。永久代和元空間保存的數據並不完全一樣,永久代中還保存另一些與類的元數據無關的雜項 ...
JVM源碼分析之SystemGC完全解讀 概述 JVM的GC一般情況下是JVM本身根據一定的條件觸發的,不過我們還是可以做一些人為的觸發,比如通過jvmti做強制GC,通過System.gc觸發,還可以通過jmap來觸發等,針對每個場景其實我們都可以寫篇文章來做一個介紹,本文重點介紹下 ...
前言 什么是 CAS Java 中的 CAS JVM 中的 CAS 前言 在上一篇文章中,我們完成了源碼的編譯和調試環境的搭建。 鑒於 CAS 的實現原理比較簡單, 然而很多人對它不夠了解,所以本篇將從 CAS 入手,首先介紹 ...