美文网首页
jvm运行时区域

jvm运行时区域

作者: 程序男保姆 | 来源:发表于2020-04-07 15:05 被阅读0次
image.png
  • 程序计数器

    1、 线程私有。
    2、 唯一一个没有OutOfMemoryError异常的区域。

  • 虚拟机栈

    1、线程私有。
    2、包含局部变量表,操作数栈,方法的返回地址,运行时常量池
    3、执行一个方法创建一个栈帧,并将建立的栈帧压栈。执行完毕后将栈帧出栈。因此可知,线程当前执行的方法所对应的栈帧必定位于Java栈的顶部。
    4、StackOverflowError异常
    线程请求的栈深度大于虚拟机所允许的深度时。
    例如:使用递归方法的时候容易导致栈内存溢出异常

    5、OutOfMemoryError 异常
    如果虚拟机栈可以动态扩展当扩展时无法申请到足够的内存时,就会OutOfMemoryError异常。
    6、局部变量表中用“”直接创建出来的字符串可以理解为是在运行时常量池中创建,并且用hashset保存 。

      下图表示了一个Java栈的模型
    
image
  • java堆(线程共享)

Java中的堆内存存储对象本身以及数组
Java堆空间是Java垃圾收集器管理的主要区域。

  • 方法区(线程共享)

方法区中,存储了每个类的信息(包括类的名称,方法信息,字段信息)、静态变量常量以及编译器编译后的代码等。

    • 常量池(存在方法区中,线程共享)

在Class文件中除了类的字段、方法、接口等描述信息外,还有一项信息是常量池,用来存储编译期间生成的字面量和符号引用。
但是运行时也可以存放在常量池中,比如 Java String类中的intern()方法

  • 局部变量表

用来存储方法中的局部变量(包括在方法中声明的非静态变量以及函数形参)。
对于基本数据类型的变量,则直接存储它的值,
对于引用类型的变量,则存储对象的引用。局部变量表的大小在编译器就可以确定其大小了,
因此在程序执行期间局部变量表的大小是不会发生改变的。

  • 操作数栈

栈最典型的一个应用就是用来对表达式求值。
想想一个线程执行方法的过程中,实际上就是不断执行语句的过程,而归根到底就是进行计算的过程。因此可以这么说,
程序中的所有计算过程都是借助操作数栈来完成的。

  • 指向运行时常量池的引用

因为在方法执行的过程中有可能需要用到类中的常量,所以必须要有一个引用指向运行时常量。

  • 方法返回地址

当一个方法执行完毕之后,要返回之前调用它的地方,因此栈帧中必须要保存一个方法返回地址。

  • 本地方法栈

相关文章

  • JMM与可见性

    JMM jvm运行时数据区域 Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域...

  • jvm内存模型及GC记录

    在jvm中有一块非常重要的区域,就是jvm运行时数据区。今天对该区域做下总结和记录: 在讨论jvm运行时数据区前,...

  • Java内存管理

    2.9 JVM内存管理 2.9.1 运行时数据区域 JVM所管理的内存可以分为一下几个运行时数据区域: 其中方法区...

  • JAVA运行时内存及垃圾回收

    JAVA 1. Java运行时内存区域 在JAVA运行时的内存区域中,由JVM管理的内存区域分为以下几个模块: 程...

  • JVM虚拟机内存模型

    本文主要根据JDK1.8讲解JVM虚拟机JVM运行时内存区域从上图我们可以看到JVM在运行时的一、JVM虚拟机数据...

  • JVM

    一. 先来看看JVM运行时候的内存区域 大多数 JVM 将内存区域划分为 Method Area(Non-Heap...

  • 深入理解java虚拟机学习笔记(一) java内存区域与相关异常

    1.JVM虚拟机运行时内存区域 jvm运行时所管理的内存将会分为如下几个区域:程序计数器、虚拟机栈、本地方法栈、方...

  • jvm 运行时数据区-01

    jvm 运行时数据区 jvm 运行时数据区 ,将内存划分为5个区域,java 代码在运行时 类里面的 组成部分 分...

  • JVM(一)---- 总结与专题目录

    JVM(一)---- 总结与专题目录JVM(二)----Java运行时数据区域JVM(三)----垃圾收集算法及S...

  • JVM(五)----虚拟机类加载机制

    JVM(一)---- 总结与专题目录JVM(二)----Java运行时数据区域JVM(三)----垃圾收集算法及S...

网友评论

      本文标题:jvm运行时区域

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