javac将.java编译成.class文件,.class是中间代码文件,并不是假定的机器代码,class文件又交给Jvm来运行处理。jvm是属于后端编译器吗?,假设jvm是后端编译器,jvm里面包括了汇编器吗,是如何编译成机器语言的。大佬们,能告诉我大概的主要流程吗?很好奇。
1 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
1.现代编译器当然包括汇编器
wikipedia 编译器
2.一开始,Java是编译成中间代码,然后在JVM里解释执行的,并没有再次编译成机器码,只能使用JVM里面写好的指令。这也一度导致Java速度不够快被人诟病
3.后来,某些JVM引入了JIT(Just In Time)编译器,在载入中间代码后先(部分)编译都成相应平台的机器码,提高运行效率。
wikipedia java
添加回答
举报
0/150
提交
取消