我想知道JVM的内部,它的执行方式以及重要的细节。你能为这个推荐任何资源或最佳书吗?
答案 0 :(得分:6)
“Java 2虚拟机内部”的章节:
http://www.artima.com/insidejvm/ed2/index.html
Bill Venners的“引擎盖下”文章http://www.artima.com/underthehood/index.html
还有“Jasmin”,JVM的一个组合,如果你想弄清楚并尝试用JVM进行低级编程。
答案 1 :(得分:6)
我对JVM的了解大多来自Sun文档。他们在HotSpot VM上有一些很棒的白皮书: http://java.sun.com/javase/technologies/hotspot/index.jsp
您提到了性能,所以也许您会对Sun性能文档感兴趣: http://java.sun.com/docs/performance/
如需更多动手方法,请尝试查看Kaffe。这将向您展示虚拟机的功能,但不一定是Sun的JVM中Java代码的工作原理:
Kaffe是Java虚拟机的洁净室实现,以及提供Java运行时环境所需的关联类库。
OpenJDK是了解Java平台如何实现的好地方: http://openjdk.java.net/
答案 2 :(得分:2)
明显的第一选择是The Java Virtual Machine Specification。还有The Wikipedia Page,它链接到其他资源。
答案 3 :(得分:1)
如果你的动机是找出如何编写更快或更少内存的代码,那么VM规范将无济于事。
VM规范并非旨在为您提供相关信息,旨在让VM开发人员大致了解如何实施VM。
据说它无法阅读它。
了解速度/内存问题的最佳方法是更高级别,有许多书籍可以帮助您更快/更精简代码。
分析器是一个非常宝贵的工具,用于测试代码以查看更快/使用更少内存的内容。配置文件,查看什么是慢/使用大量内存,更改它,配置文件,看看更改做了什么。
答案 4 :(得分:0)
这是堆,对象分配和垃圾收集的一个简短的解释, Understanding Memory Management。 你可以从那里开始探索更多。