您的位置:首页 > 编程语言 > Java开发

Java虚拟机基本结构

2017-05-22 14:23 246 查看

JVM结构

1、Java虚拟机基本结构如下:

 


 

l 类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放在一块称为方法区的内存空间。除了类的信息外,方法区还是会存放运行时常量池信息,包含字符串字面量和数字变量。(这部分常量信息是Class文件中常量池部分的内存映射)

 

l Java堆在虚拟机运行时候启动建立,它是Java程序最主要的工作内存。几乎所有的Java实例化对象都存放在Java堆内存中。堆空间是所有内存共享的,这是一块与Java程序密切相关的内存空间。

 
l Java的NIO库允许Java程序直接使用内存。直接内存是在Java堆内存之外的,直接向系统申请的内存区间。Java使用直接内存的效率是大于堆内存的使用效率的,所以在读写频率很频繁的情况下是使用直接内存的。由于直接内存在堆内存之外,所以是不受Xmx,Xms,Xmn等参数印象的,但是直接内存是受制于操作系统能给的最大内存。
 
l Java垃圾器回收是Java虚拟机非常重要的组成部分,垃圾回收器可以对Java堆内存,方法区,直接内存进行内存回收。其中Java堆内存是垃圾回收器的重点回收对象,对于不再使用的对象垃圾回收器在后台默默的查找,标记,回收对象。
 
l Java栈在线程被创建的时候创建,Java栈中保存着帧信息,Java栈中保存着局部变量,方法参数,同时跟Java方法的调用与创建有重要的关系。
 
l 本地方法栈与Java栈不同的是,本地方法栈是用于调用本地方法的,作为Java虚拟机的重要扩展,Java虚拟机允许Java直接调用本地方法(C编写)
 

l PC寄存器是每个线程的私有空间,Java虚拟机会为每个Java线程创建一个PC寄存器。在任意时刻Java线程总是总是只执行一个方法,这个正在执行的方法为当前方法。如果当前方法不是本地方法(C编写直接调用系统命令),则PC寄存器则指向此方法,如果不是本地方法,值为undefined。

 

l 执行引擎是Java虚拟机最核心的组成部分,它负责执行Java虚拟机的字节码。现在虚拟机为了提高执行效率,会使用即时编译技术会把方法编译为机器码以后执行。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jvm