深入JVM【1】java源码编译机制
来源:互联网 发布:java init方法 编辑:程序博客网 时间:2024/06/03 18:51
1.分析和输入到符号表【parse and Enter】
词法分析(com.sun.tools.javac.parser.Scanner)要完成的是将代码字符串转换成token序列。
语法分析(com.sun.tools.javac.parseParser)要完成的是根据token序列生成抽象语法树。
enter 将符号输入到符号表。
通常包含确定类的超类型和接口、根据需要添加默认构造器、将类中出现的符号输入到类自身的符号表中等。
2.注解处理【annotation processing】
主要用于将处理用户自定义的注解。此过程进行完以后再次进入到 parse and enter阶段。
3.语义分析生成class文件【Analyse and Generate】
包括将语法树中的名字,表达式等元素与变量,方法,类型等联系到一起;检查使用前是否已声明;推导泛型方法的类型参数;检查类匹配性;进行常量折叠; 检查所有的Checked Exception都被捕获或抛出,检查变量的确定性不重复复制(例如final的变量);解除语法糖(消除if(false)...等无用代码)。将泛型java转换成普通java。自动装箱、自动拆箱等
生成的步骤:首先将实例成员初始化器收集到构造器中,将静态成员初始化器收集到<clinit>();接着讲抽象语法树生成字节码,采用的方法为后序遍历语法树,并进行最后的少量代码的转换(例如String相加变成StringBuilder操作),最后从符号表生成class文件。
阅读全文
1 0
- 深入JVM【1】java源码编译机制
- 【总结】深入JVM之源码编译机制
- jvm 之 java源码编译机制-感想
- JVM之java源码编译机制
- JAVA源码编译机制
- jvm详解-java源码编译
- java 深入理解JVM--JVM垃圾回收机制
- java源码的编译机制
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制(1) - synchronized
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized .
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized
- 深入JVM锁机制1-synchronized
- leetcode(215). Kth Largest Element in an Array
- 跳台阶问题+变态跳台阶问题(动态递归+非递归)
- 收集的异常
- 1007. 素数对猜想 (20)
- ffmpeg :将h264编码的视频流保存为BMP或者JPEG图片
- 深入JVM【1】java源码编译机制
- Oracle 11G 出现EXP-00003: 未找到段 (0,0) 解决办法
- 整数快速乘法/快速幂+矩阵快速幂
- js:换行的问题
- Bill and Zero's English sharing summary
- mysql 及mysql cluster性能测试
- linux2.6内核SD Card Driver详细解析
- Linux (CentOS)下配置多个Tomcat同时运行
- mac office 2011 word 不显示图片?