Advanced Java-08-编译

语法糖

Java 中最常用的语法糖主要有泛型、变长参数、条件编译、自动拆装箱、内部类等。虚拟机并不支持这些语法,它们在编译阶段就被还原回了简单的基础语法结构,这个过程成为解语法糖。

编译器介绍

前端编译器

源码->字节码, javac

  1. 语法分析, 代码->Token, Token->语法树
  2. 填充符号表
  3. 语义分析, 保证逻辑性
  4. 字节码生成

后端编译器

字节码->机器码, 比如HotSpot自带的JIT, 当虚拟机发现某个方法或代码块运行特别频繁时, 就会把这些代码认定为Hot Spot Code, 虚拟机将会把这些代码编译成与本地平台相关的机器码