java源代码是如何变成class的【面试题详解】

今天爱分享给大家带来java源代码是如何变成class的【面试题详解】,希望能够帮助到大家。

读取源代码,将源代码转变成标记(Token流)集合,标记是编译过程的最小元素。如 int a = b + 2; —> int、a、=、b、+、2
词法分析,识别所有的代码中的每一个字节,每个词语是否合法,例如 white,if,else,return等等,识别出哪些是一个词语,哪些是标点符号,哪些是动词,哪些是名词
语法分析,检查是否符合java语法规范,例如 包括变量使用前是否声明,变量与赋值之间的数据类型是否匹配,if后面是否是括号,方法是否有返回值等等
语义分析,就是将复杂的语法转化为简单的语法,例如将foreach转化为for循环,还有一些注解注释等。最后生成一棵抽象的语法树,这棵语法树也就更接近目标语言的语法规则
生成字节码,将抽象的语法树,生成符合java虚拟机规范的字节码。通过javac编译器调用com.sun.tools.javac.jvm.Gen类遍历这棵语法树将java方法中的代码块转换成符合JVM语法的命令形式的二进制数据。按照JVM的文件组织格式将字节码输出到以class为扩展名的文件中,也就是生成最终的java字节码

原文链接:https://blog.itblood.com/920.html,转载请注明出处。
0
受孕吧!爆乳天国天使宝贝2~王都攻略篇~挂载AI汉化版+存档[新作][2.4G] [RPG/汉化/动态/CV]
受孕吧!爆乳天国天使宝贝2~王都攻略篇~挂载AI汉化版+存档[新作][2.4G] [RPG/汉化/动态/CV]
9分钟前 有人购买 去瞅瞅看

站点公告

显示验证码
没有账号?注册  忘记密码?