我想知道JVM的內部,它如何執行以及重要的細節。你能建議任何資源或最好的書可用於這?理解JVM更好
理解JVM更好
回答
我所知道的大多數JVM來自Sun文檔。他們對HotSpot虛擬機的一些偉大的白皮書: http://java.sun.com/javase/technologies/hotspot/index.jsp
你提到的性能,所以也許你會感興趣的太陽性能文檔: http://java.sun.com/docs/performance/
對於多動手上的做法,嘗試尋找在Kaffe。這將向您展示虛擬機的功能,但並不一定如何在Sun的JVM中運行Java代碼:
Kaffe是Java虛擬機的潔淨室實施,以及提供Java運行時所需的關聯類庫環境。
而且OpenJDK的是瞭解Java平臺如何實現一個偉大的地方: http://openjdk.java.net/
明顯的第一選擇是The Java Virtual Machine Specification。還有The Wikipedia Page,鏈接到其他資源。從 「裏面的Java 2虛擬機」
章節:
http://www.artima.com/insidejvm/ed2/index.html
「引擎蓋下」,由比爾文章
http://www.artima.com/underthehood/index.html
還有 「茉莉花」,一個裝配臺對於JVM,如果您想讓自己的手變髒並嘗試使用JVM進行低級編程。
如果你的動機是要找出如何編寫工作更快,佔用內存更少的虛擬機規範不會幫助太多的代碼。
VM規範不是爲了給你提供有關信息,它的目的是讓VM開發人員大致瞭解如何實現VM。
這就是說它不能閱讀它。
找出有關速度/內存問題的最佳方法是在更高層次上,有許多書籍可以幫助您更快/更精簡的代碼。
探查器是測試代碼以查看更快/使用更少內存的寶貴工具。配置文件,看看什麼是慢/使用大量的內存,改變它,配置文件,看看有什麼變化。
下面是我深入的在線課程Java的一個鏈接Udemy平臺。它有一個關於JVM的完整章節,大約有3個小時的視頻。它涵蓋了從類型的生命週期,運行時數據區域,反射,垃圾收集,堆棧和指令集等所有內容。 「Java 2虛擬機內部」在其中一個答案中提到的在線書籍被用作參考書籍之一。
https://www.udemy.com/java-in-depth-become-a-complete-java-engineer/
這裏是一個很好的和堆的簡短說明,對象分配和垃圾收集, Understanding Memory Management。 您可以從那裏開始探索更多。
- 1. 更好的理解服務
- 2. 寫更好的方法列表理解?
- 3. ForeignKey關係更好的理解
- 4. 更好地理解屬性聲明
- 5. NodeJS,PM2,GC,Grafana - 更好的理解
- 6. 試圖更好地理解指針
- 7. 主幹 - 更好地理解模板
- 8. 有助於更好地理解聯接
- 9. 更好地理解getline()和cin
- 10. 更好地理解extern「C」函數
- 11. 做得更好字典理解
- 12. 更好地理解內存版本
- 13. 瞭解JVM GC
- 14. 瞭解Arel更好
- 15. 防僞 - 更好地理解它的工作原理
- 16. 更好地理解用於php和javascript的Web代理
- 17. 管理多個JVM
- 18. 什麼免費的JVM實現有最好的PermGen處理?
- 19. 更好地瞭解在軌
- 20. 更好的解決SqlDataSource?
- 21. 更好aproache處理dns_get_record
- 22. Nginx更好的VHOST管理?
- 23. 更好的管理安全
- 24. JVM調整以獲得更好的Solr性能
- 25. 如何在桌面JVM上獲得更好的NullPointerException消息?
- 26. 如何JVM編碼屬性更好的設置爲UTF-8
- 27. 更好地理解CSS網格列 - 使用浮點數的列
- 28. 更好地理解用戶和memcached之間的關係
- 29. 我需要更好地理解JavaScript的基本性質對象
- 30. 更好地處理cmd.Cmd命令行解釋器中的KeyboardInterrupt