培训首页  >  软件开发新闻  >  java文件为什么不用JVM直接编译?

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

[2022-07-23 14:18:52] 浏览量:90 来源:

爱尚实训

我们编写的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访问底层的重要途径。


文中图片素材来源网络,如有侵权请联系删除

厚学推荐学校

网上报名

热门信息

温馨提示