ecut

数据结构--数组模拟环形队列

六月ゝ 毕业季﹏ 提交于 2020-11-17 14:36:34
import java.util.Scanner; /** * 数组实现环形队列 */ public class CircleArrayQueue2 { public static void main(String[] args) { System.out.println("测试数组模拟环形队列的案例~~~"); // 创建一个环形队列 CircleArray2 queue = new CircleArray2(4); //说明设置4 char key = ' '; // 接收用户输入 Scanner scanner = new Scanner(System.in);// boolean loop = true; // 输出一个菜单 while (loop) { System.out.println("s(show): 显示队列"); System.out.println("e(exit): 退出程序"); System.out.println("a(add): 添加数据到队列"); System.out.println("g(get): 从队列取出数据"); System.out.println("h(head): 查看队列头的数据"); key = scanner.next().charAt(0);// 接收一个字符 switch (key) { case 's': queue

《深入理解Java虚拟机》读书笔记九

前提是你 提交于 2020-10-28 16:49:22
第十章 早期(编译期)优化 1、Javac的源码与调试 编译期的分类: 前端编译期:把*.java文件转换为*.class文件的过程。例如sun的javac、eclipseJDT中的增量编译器。 JIT编译期:后端运行期编译器,把字节码转换成机器骂的过程。例如 HotSpot VM的C1、C2编译器。 AOT编译器:静态提前编译器,直接拔Java文件编译成本地机器代码的过程,例如GCJ。 Javac的编译过程: 解析与填充符号表的过程。 插入式注解处理器的注解过程。 分析与字节码生成的过程。 Javac编译动作的入口是com.sun.tools.javac.main.JavaCompiler类,上述3个过程的代码逻辑集中在这个类的compile()和compile2()方法中,其中主体代码如图所示,整个编译最关键的处理就由图中标注的8个方法来完成,下面我们具体看一下这8个方法实现了什么功能。 解析与填充符号表的过程: 词法分析,是将源代码的字符流转变为标记(Token)集合,单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为标记。 语法分析,是根据Token序列构造抽象语法树的过程,抽象语法树(Abstract Syntax Tree,AST)是一种用来描述程序代码语法结构的树形表示方式