Answers:
多年前,当我开始使用Java时,我做了一些这样的事情。我的方法是阅读VM规范,并查看javap -c的输出,该输出显示了一个类的反汇编字节码。我还尝试使用Java字节码汇编器创建具有特定字节码的Java类。如果您想尝试一下,可以使用一个名为jasmin的汇编程序。
您可能还需要查看Oracle的Brian Goetz发布的Lambda Expression Translation文档,其中涵盖了将用于翻译Java 8中添加的lambda(本质上是闭包)的策略。
如果您确实想深入研究池的深层内容,还可以从OpenJDK获取Hotspot VM的源代码,并为JDK 8 提供具有lambda支持的Javac编译器的早期访问版本(hg存储库)。
研究垃圾收集可能是一个好主意。快速搜索找到了Dobbs博士有关Java垃圾优先GC的文章。我不知道这是一个很好的介绍。我假设您已经了解标记清除和分代垃圾收集器;如果没有,您将需要先阅读这些内容。
如果您还不熟悉Java字节码格式,请考虑编写一个微型编译器,该编译器将创建有效的Java字节码(或Jasmin汇编程序)并使其正确运行。
看到您的代码生成的“ Hello World”或“ 4”(给定2 + 2)非常令人满意。
除了其他人说的话,请查看Java Performance Tuning页面。通常,它包含许多有关垃圾回收和性能调整的文章。它还包含一些性能调优书的列表,这些书可能对您也很有趣。
SUPER
类文件中的标志实际上是做什么的?大部分描述在JVM规范本身中,但是需要一些工作才能将其运用于您的大脑;-)