在學習Java 虛擬機的時候你可能有以下疑問:
Java虛擬機的原理是什麼?
JNI、類加載器的原理又是什麼?
Safepoint機制又是怎樣的?
阿里雲開發者學堂配套教材《JVM實戰》來啦!6章內容,幫你輕鬆解決以上難題。配合9000+人學習的Java 虛擬機原理視頻課程,技術進階不是夢!
複製該鏈接到瀏覽器完成下載或分https://developer.aliyun.com/topic/download?id=7851
—精彩內容搶先看—
JNI in Java
掌握Java和Native之間的互相調用,大大豐富java的使用場景。瞭解原理,對於學習JVM/故障定位更加得心應手。點擊查看更多>>
Safepoint機制
safepoint會把整個jvm的那些應用線程給暫停掉這裡主要是關心的當vm thread發出請求的時候,Java的實驗者能夠及時的響應safepoint的請求,能夠馬上的自己給停下來,如果有一些線程它停下來了,另一些線程還在運行,這樣的話其他的線程就會等於是浪費時間在等待,所以說及時響應是它一個很重要的指標。點擊查看更多>>
類加載器原理
關於類加載部分,首先用戶有Java文件,然後Java文件用Java c去編譯就可以得到.class文件,接著虛擬機會加載.class文件變成虛擬機的元數據。比如在c++裡邊會變成Klass *,Method *,ConstantPool * 等,這些都是Java虛擬機裡元數據的描述。點擊查看更多>>
Dragonwell特性: 多租戶
以前阻塞的API是支持的完全不需要改代碼,可以把以前的用協程寫代碼直接切換到協程模型,進行一個模型轉換,這樣從java thread和Pthread就操作系統1:1的模型變到調用大量wisp變成少量操作統線程,性能大大提高。點擊查看更多>>
Dragonwell特性: JWarmup
Java的方法要被執行時,首先這個方法所在的類需要被JVM加載,這個過程包括各類文件的驗證、解析、鏈接以及類的初始化。當這個類被加載進來了以後,JVM就可以去執行這個方法。點擊查看更多>>
Dragonwell特性: Wisp
上下文切換會吃掉寶貴的CPU資源,大家很多情況下對上下文有誤區,進出內核和調度之間其實很大差異的。假如像剛才這種場景,我們看到多個線程來回調用,那一個線程當它資源耗盡或者比較阻塞的時候,下個線程選誰?其實操作系統需要進行調度,真正的損耗遠大於想象。點擊查看更多>>
阿里雲開發者藏經閣
阿里雲開發者社區——藏經閣系列電子書,匯聚了一線大廠的技術沉澱精華,爆款不斷。點擊鏈接獲取海量免費電子書:https://developer.aliyun.com/ebook