JVM的结构组成

 发布日期:2018-12-16 19:55:19  阅读次数:阅读数:127  来源:
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nangeali/article/details/81569251

JVM构成

1、类加载子系统
2、方法区
3、Java堆
4、直接内容
5、Java栈
6、本地方法栈
7、垃圾收集系统
8、PC寄存器
9、执行引擎

类加载子系统

负责从文件系统,或者网络中加载Class信息
加载的信息存放在一块称为方法区的内存空间

方法区

存放类信息、常量信息、常量池信息、包括字符串字面量和数字常量等

Java堆

在Java虚拟机启动的时候,建立Java堆,是Java程序最主要的内存工作区域
几乎所有的对象实例,都存放在Java堆中
堆空间,是所有线程共享的

直接内存

Java的NIO库,运行Java程序使用直接内存,从而提高性能
通常直接内存速度,会优于Java堆
读写频繁的场合可以考虑使用

Java栈

每个虚拟机线程,都有一个私有的栈
一个线程的Java栈,在线程创建的时候,被创建
Java栈中保存着局部变量、方法参数、同时Java的方法调用、返回值等

本地方法栈

与Java栈相似
用于本地方法调用,Java虚拟机运行Java,直接调用本地方法,通常使用C编写

垃圾收集系统

Java的核心,Java有一套自己进行垃圾清理的机制
开发人员无效手工清理

PC寄存器

每个线程私有的空间
Java虚拟机会为每个线程,创建PC寄存器
在任意时刻,一个Java线程总是在执行一个方法,这个方法称为当前方法

如果,当前方法不是本地方法,PC寄存器就会执行当前正在被执行的指令
如果,是本地方法,则PC寄存器值为undefined,寄存器存放,当前执行环境指针、程序计数器、操作栈指针、计算的变量指针等信息

执行引擎

JVM核心组件
负责执行虚拟机的字节码
一个先进行编译,成机器码后执行

如果您有好的新闻与建议,欢迎点击文章投稿

    发表评论

    电子邮件地址不会被公开。

  • 内容

  • 网名