第8章 Java源代码和字节代码操作
经过前面章节的介绍,相信读者对Java源代码、Java字节代码和Java虚拟机之间的关系有了一定的了解。一般的流程是这样的:由开发人员编写Java源代码,再通过Java编译器编译成字节代码,最后由虚拟机来运行。通过JDK中的命令行工具javac可以启动编译器来编译Java源代码,以生成字节代码。使用命令行工具java或javaw可以启动虚拟机来运行字节代码。如果使用的是集成开发环境(IDE),那么相关的步骤更加简单,只需要通过IDE的用户界面来操作即可。字节代码作为一个中间层次,为Java平台增加了很多的灵活性。字节代码的格式是公开的。通过工具可以绕开Java编译器直接生成字节代码,也可以对已有的字节代码进行修改。通过操作字节代码,可以实现很多强大的功能,并用简洁的方式解决复杂的问题。
前面提到的从Java源代码到字节代码再到虚拟机运行的过程中,其中的每一步都有不同的实现方式。比如,可以不使用命令行工具javac,而直接在运行时动态编译Java源代码;字节代码可以不通过编译器来生成,而是使用工具来动态创建;在字节代码被虚拟机执行之前,可以通过修改字节代码的内容来改变程序的行为。Java开发人员对Java源代码的语法应该都很熟悉,下面先从开发人员可能比较陌生的字节代码格式开始介绍。