返回
爱尚实训
置顶
该校与厚学网暂未合作,平台不保证课程的真实有效性,如有侵权等争议,请及时与厚学网联系处理
招生热线:400-800-2178

学校地址:哈尔滨市南岗区哈西大街299号西城红场B座15层爱尚实训

java文件为什么不用JVM直接编译?

90 2022-07-25 09:11:23

学习笔记

我们编写的java文件在由编译器编译后会生成对应的class字节码文件,然后再将class字节码文件转给JVM。JVM会处理解析class文件,将其内部设置的类、方法、常量等信息全部提取出来,然后找到main方法开始一步一步编译成机器码并执行,中间会根据需要调用前面提取的数据。


java文件为什么不用JVM直接编译?这样效率不是更高么?


首先要知道java之所以强大,原因之一就是JVM的强大。强大之一是JVM是"跨平台"的。无论在哪种操作系统上执行,都可以转成对应的机器语言,不需要担心适配问题。第二点就是JVM是"跨语言"的,因为JVM只认class文件,所以其他语言只需要一个编译器编译成class文件就可以使用JVM来编译执行了。


JVM组件分析


根据上面的说明可以知道java程序执行的核心是通过JVM来实现的,那么就需要知道JVM内部是如何执行的。JVM内部可以分为四大部分,运行时数据区域、类加载系统、执行引擎、本地接口和本地方法库。


类加载系统:主要就是指类加载器,用于把class数据文件加载到运行时数据区域,然后由数据区域来编译执行。


运行数据区域:搭配执行引擎来编译传来的文件中的代码,然后执行,并且根据需要通过本地方法接口调用本地方法。


执行引擎:主要用于代码的编译和运行时对象的回收。


本地库接口和本地方法库:提供一些java无法实现,需要底层执行调用的方法,是jvm访问底层的重要途径。


文中图片素材来源网络,如有侵权请联系删除
热门课程 全部课程

相关新闻推荐

申请免费试听

只要一个电话

我们为您免费回电

立即申请
刷新
图形验证
关闭
>>
拖动左边滑块完成上方拼图
机器人