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自带的