《Java虚拟机精讲》读书笔记-第二章 字节码的编译原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Java虚拟机精讲》读书笔记-第二章 字节码的编译原理相关的知识,希望对你有一定的参考价值。

jvm同样可以执行其它语言的代码,如ruby,js只要他们编译成符合规范的字节码

相关信息可以百度jruby等

而java本身编译字节码的工具也就是我们都知道的javac.exe

然而我们在eclipse中的编译工作并不是读取jdk执行javac实现的,而是使用了eclipse自带的ECJ编译器实现的,javac采用的是全量编译,而ecj使用的是增量编译,tomcat也使用ecj编译jsp页面

编译分为4部分

  1. 词法分析

    将源码中的关键字和标识符等内容转换为符合java语法规范的token序列,然后按照指定的顺序规则进行匹配校验(转换并校验关键字和标识符是否正确)

2.语法分析

  将token序列整合为一个语法树,如try后面要接catch(生成语法树并校验语法是否正确)

3.语义分析

 扩充语法树

4.生成字节码(后续详细讲解)


如何下载部署javac编译器源码

download.java.net/openjdk/jdk8

新建java项目,并将下载的压缩文件中的/langtools/src/share/classes文件夹下的文件导入或copy到代码区,注意设置你的eclipse编译器版本为1.5以上,同时jre尽量使用eclipse自带的

以上是关于《Java虚拟机精讲》读书笔记-第二章 字节码的编译原理的主要内容,如果未能解决你的问题,请参考以下文章

《Java虚拟机精讲》读书笔记-第一章Java体系结构

深入理解Java虚拟机读书笔记---运行时数据区域

深入理解java虚拟机读书笔记1--java内存区域

jvm 运行时数据区域(读书笔记)

《深入理解java虚拟机》读书笔记:对象的内存布局

深入理解Java虚拟机之读书笔记一 自动内存管理机制