美文网首页
JVM结构浅析

JVM结构浅析

作者: coderpjw | 来源:发表于2018-11-26 20:43 被阅读0次

JVM运行时数据区

  1. 程序计数器 Program Counter Register

    程序计数器是用于存储每个线程下一步将执行的JVM指令,如该方法为native,则程序计数器不存储任何信息。

  2. JVM栈 JVM Stack

    JVM栈是线程私有的,每个线程创建的同时都会创建JVM栈,JVM栈中存放的为当前线程中局部基本类型的变量、部分返回的结果以及Stack Frame,非基本类型的对象在栈上存放一个指向堆的地址

  3. heap

    JVM用来存储对象实例以及数组值的区域,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中的对象会等待GC回收

    堆是JVM中所有线程共享的,因此在其上进行对象内存的分配均需要进行加锁,所以在new对象的时候会有较大的内存开销。

  4. 方法区 Method Area

    Sun JDK中这块区域对应的为PermanentGeneration,有称为持久代

    方法区存放了所加载的类信息包括名称、修饰符、类中的静态变量、类中定义为final类型的常量、类中的Field、方法。

    当通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区,同时方法区也是全局共享的,在一定条件下也会被垃圾回收,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误。

  5. 本地方法栈 Native Method Stacks

    JVM采用本地方法栈来支持本地方法的执行,此区域存储每个native方法调用的状态。

  6. 运行时常量池 Runtime Constant Pool

    存放的为类中固定的常量信息、方法和属性的引用信息等。

    是从方法区中分配出来的空间。

    JVM在加载类时会为每个class分配一个独立的常量池,运行时字符串常量池是全局共享的。

JVM结构示意图

JVM结构图

相关文章

  • JVM结构浅析

    JVM运行时数据区 程序计数器 Program Counter Register程序计数器是用于存储每个线程下一步...

  • [JVM] JVM内存结构浅析

    JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定运行。 经典的JVM内存布...

  • JVM内存结构浅析

    1 概述 具有内存动态分配和自动回收的特点 2 运行时内存 2.1 程序计数器(Program Counter R...

  • jvm垃圾清理机制

    更多参考GC及JVM参数浅析JAVA的垃圾回收机制(GC)JVM系列三:JVM参数设置、分析jvm系列 (二) -...

  • JVM结构书目录

    JVM结构 JVM结构之运行时数据区 JVM结构之执行引擎 JVM结构之类加载子系统 JVM结构之本地方法接口(J...

  • Android Studio目录结构浅析

    segmentfault:Android Studio目录结构浅析

  • JVM垃圾回收

    参考资料:[1]. 浅析JAVA的垃圾回收机制(GC)[2]. JVM 七种垃圾回收器[3]. JVM(六)为什么...

  • JVM浅析

    目录结构 一、简介 二、Java基本类型 三、虚拟机如何加载类文件 四、JVM如何执行方法调用 五、JVM如何进行...

  • jvm浅析

    一 、jvm 内存模型 作用:JVM不仅承担了Java字节码的分析(JIT compiler)和执行(Runtim...

  • 【精通 JVM 原理】浅析 JavaAgent & Instru

    浅析 JavaAgent & Instrumentation 机制 前言 本文主要内容 1、JVM的字节码指令,方...

网友评论

      本文标题:JVM结构浅析

      本文链接:https://www.haomeiwen.com/subject/sijiqqtx.html