美文网首页
JVM基本结构

JVM基本结构

作者: 王振 | 来源:发表于2018-07-11 17:21 被阅读0次
image.png

PC寄存器

  • 每一个线程拥有一个PC寄存器
  • 在线程创建时创建
  • 指向下一条指令的地址
  • 执行本地方法时,PC的值为undefined

方法区

  • 保存装载的类信息,常量,常量池,即时编译器编译后的代码等数据
    • 类的版本
    • 字段
    • 方法
    • 接口
  • 通常和永久区关联在一起
  • 垃圾回收在方法区的行为
  • 异常的定义

    JDK6时,String等常量信息置于方法区
    JDK7时,已经移到了堆

Java堆

  • 和程序开发密切相关
  • 应用系统对象都保存在Java堆中
  • 所有线程共享Java堆
  • 对分代GC来说,堆也是分代的
  • GC的主要工作区间
image.png

Java栈

  • 基本类型、运算,指向堆内存的指针
  • 线程私有,其生命周期和线程相同
  • 栈由一系列帧组成
  • 帧保存一个方法的局部变量、操作数栈、常量池指针
  • 每一次方法调用创建一个帧,并压栈

Java虚拟机栈

  • 虚拟机栈描述的是Java方法执行的动态内存模型

  • 栈帧

    • 每个方法执行,都会创建一个栈帧,伴随着方法从创建到执行完成。用与存储局部变量表,操作数,动态链接,方法出口等
  • 局部变量表

    • 存放编译器可知的各种基本数据类型,引用类型,returnAddress类型
  • 大小

  • StackOverFlow

本地方法栈

  • 虚拟机栈为虚拟机执行Java方法服务
  • 本地方法栈为虚拟去执行native方法服务

程序计数器

  • 是一个非常小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。
  • 程序计数器处于线程独占区
  • 如果线程执行的是Java方法,则计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的是nativie方法,则这个计数器的指为undefined
  • 此区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域

对象的创建

JVM堆内存

  1. JDK1.8之后


    image.png
  2. JDK1.8之前


    image.png

相关文章

  • 深入JVM内核原理-2.JVM运行机制

    1.JVM启动流程 JVM启动流程.png 2.JVM基本结构 JVM基本结构.png PC寄存器每个线程拥有一个...

  • JVM基本结构

    PC寄存器 每一个线程拥有一个PC寄存器 在线程创建时创建 指向下一条指令的地址 执行本地方法时,PC的值为und...

  • jvm基本结构

  • JVM基本结构

    JVM基本结构 PC寄存器 线程私有 字节码指令的行号指示器,指向下调要执行的指令地址 不会发生OOM 堆 和程序...

  • jvm基本结构

    1. jvm运行数据区 1 PC寄存器 1.1 每个线程都有一个pc寄存器 1.2 在线程创建时创建 1.3 指向...

  • jvm基本结构

    1. jvm运行数据区 1 PC寄存器 2 方法区 3 java堆 4 java栈 5 栈调用过程演示image....

  • JVM基本结构

    一直对JVM的基本结构很困惑,今天抽空整理下。 Java Virtual Machine的简称即Java虚拟机 虚...

  • JVM——基本结构

    前言 只有了解了JVM的组成部分,才能算的上真正的了解了JVM,JVM的组成5个部分:堆、虚拟机栈、本地方法栈、程...

  • JVM结构、GC工作机制

    JVM结构、内存分配、垃圾回收算法、垃圾收集器。 一、JVM结构 JVM的基本结构一般如下图所示: 从左图可知,J...

  • JVM底层之ClassLoader源码解析及自定义ClassLo

    1.JVM运行流程 JVM运行流程如下图所示: 2.JVM基本结构 JVM基本机构包括:类加载器,执行引擎,运行时...

网友评论

      本文标题:JVM基本结构

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