java虚拟机的运行原理是什么 - 爱问答

(爱问答)

java虚拟机的运行原理是什么

 首先我想从宏观上介绍一下java虚拟机的工作原理。从最初的我们编写的java源文件(.java文件)是如何一步步执行的,如下图所示,首先java源文件经过前端编译器(javac或ECJ)将.java文件编译为java字节码文件,然后JRE加载java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个部分。java虚拟机的运行原理是什么

  • 类加载

  类加载指将类的字节码文件(.class)中的二进制数据读入内存,将其放在运行时数据区的方法区内,然后在堆上创建java.lang.Class对象,封装类在方法区内的数据结构。类加载的最终产品是位于堆中的类对象,类对象封装了类在方法区内的数据结构,并且向JAVA程序提供了访问方法区内数据结构的接口。如下是类加载器的层次关系图。

java虚拟机的运行原理是什么

    • 启动类加载器(BootstrapClassLoader):在JVM运行时被创建,负责加载存放在JDK安装目录下的jrelib的类文件,或者被-Xbootclasspath参数指定的路径中,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被Bootstrap ClassLoader加载)。启动类无法被JAVA程序直接引用。
    • 扩展类加载器(Extension ClassLoader):该类加载器负责加载JDK安装目录下的jrelibext的类,或者由java.ext.dirs系统变量指定路径中的所有类库,开发者也可以直接使用扩展类加载器。
    • 应用程序类加载器(AppClassLoader):负责加载用户类路径(Classpath)所指定的类,开发者可以直接使用该类加载器,如果应用程序中没有定义过自己的类加载器,该类加载器为默认的类加载器。
    • 用户自定义类加载器(User ClassLoader):JVM自带的类加载器是从本地文件系统加载标准的java class文件,而自定义的类加载器可以做到在执行非置信代码之前,自动验证数字签名,动态地创建符合用户特定需要的定制化构建类,从特定的场所(数据库、网络中)取得java class。



运行原理就是:当程序员写好了一个java文件之后,进入cmd控制界面编译,此时会出现一个class文件,就是我们的目标码文件,当我们把这个文件拷贝到任何操作系统上,运行的时候,这个平台的特定java虚拟机就会翻译成这个平台的可执行程序的java文件,然后执行。

相关标签:java

下一篇:javaphppython这三个哪个学习起来更容易上手

上一篇:VB编写程序,定义一个动态数组,找出该数组中每一列绝对值最大和最小的元素及其所在的行号。

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?