JAVA虚拟机JVM工作原理

栏目: Java · 发布时间: 6年前

内容简介:提起JAVA,都知道它有个虚拟机,因此可以跨平台,一次编写,到处运行。但具体原理是咋样的?身为JAVA小白,岂可不知!一、原理JVM实现了JAVA语言最重要的特征:平台无关性。其原理:java程序并不直接在操作系统上执行,而是由JVM执行。JVM屏蔽了与具体平台相关的信息,使得JAVA程序只需编译成适应JVM,可以在JVM上运行的目标代码(.class)就行,JVM再负责解释成具体平台的机器指令执行。同时,JVM还会进行安全检查,是java程序的安全检验引擎。

提起JAVA,都知道它有个虚拟机,因此可以跨平台,一次编写,到处运行。但具体原理是咋样的?身为 JAVA 小白,岂可不知!

一、原理

JVM实现了JAVA语言最重要的特征:平台无关性。其原理:java程序并不直接在操作系统上执行,而是由JVM执行。JVM屏蔽了与具体平台相关的信息,使得JAVA程序只需编译成适应JVM,可以在JVM上运行的目标代码(.class)就行,JVM再负责解释成具体平台的机器指令执行。同时,JVM还会进行安全检查,是java程序的安全检验引擎。

二、结构

JVM由三大部分组成:

1、类加载器
2、执行引擎
3、运行时数据区域

JAVA虚拟机JVM工作原理

1、类加载器

具体作用就是将 .class 文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的 .class 文件,而是根据需要去动态加载。

类的加载过程采用双亲委派模型:

1)当前类加载器首先检查自己的加载清单,如果存在该类,则返回之;

2)如果没找到,委托父类加载器去加载;父类加载器重复动作1,递归至祖宗bootstrap ClassLoder(我靠,bootstrap,还以为是前端框架呢。bootstrap,引导之意);

3)都没有,仍然由当前类加载器加载,并纳入自己缓存中。

采用双亲委派模型,目的在于更好的保证Java平台的安全。所谓的安全,是指java的核心类被用户自己编写的类所替换。由于核心类在虚拟机初始化时就已加载,而每次加载类前先检查是否存在,所以可以避免核心类被替换。

各种类加载器:

JAVA虚拟机JVM工作原理

Bootstrap class loader: 父类

当运行 java 虚拟机时,这个类加载器被创建,它负责加载虚拟机的核心类库,如 java.lang.* 等。例如 java.lang.Object 就是由根类加载器加载的。需要注意的是,这个类加载器不是用 java 语言写的,而是用 C/C++ 写的。

Extension class loader:

这个加载器加载出了基本 API 之外的一些拓展类。

AppClass Loader(SystemAppClass):

加载应用程序和 程序员 自定义的类。

2、执行引擎

作用: 执行java编译好的字节码,或者执行本地方法

3、运行时数据区域

JVM 运行时数据区域 (JVM Runtime Area) 其实就是指 JVM 在运行期间,其对JVM内存空间的划分和分配。JVM在运行时将数据划分为6个区域来存储:

Program Counter (PC) Register:程序计数器

Java Virtual Machine Stacks:Java虚拟机栈

Heap Memory:堆内存

Method Area:方法区

Run-time Constant Pool:运行时常量池

Native Method Stacks:本地方法栈

我们写的所有程序都被加载到这里,按不同类别存放在

堆内存
Java虚拟机栈
本地方法栈
程序计数器
方法区

1)从 线程的角度 理解Java Runtime Area

a.线程私有:

程序计数器 Java虚拟机栈 本地方法栈,生命周期与线程一致;

b.线程共享:

Java堆,方法区,运行时常量池,生命周期与JVM一致。

2)从 存储内容 理解Java Runtime Area

方法区和常量池存储类的信息

堆内存存储对象信息

程序计数器,Java虚拟机栈,本地方法栈存储线程的信息


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)

架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)

Martin L. Abbott、Michael T. Fisher / 陈斌 / 机械工业出版社 / 2016-4-15 / 99.00

任何一个持续成长的公司最终都需要解决系统、组织和流程的扩展性问题。本书汇聚了作者从eBay、VISA、Salesforce.com到Apple超过30年的丰富经验, 全面阐释了经过验证的信息技术扩展方法,对所需要掌握的产品和服务的平滑扩展做了详尽的论述,并在第1版的基础上更新了扩展的策略、技术和案例。 针对技术和非技术的决策者,马丁•阿伯特和迈克尔•费舍尔详尽地介绍了影响扩展性的各个方面,包......一起来看看 《架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具