美文网首页
每天一个知识点(5)--JVM-运行时数据区

每天一个知识点(5)--JVM-运行时数据区

作者: gigglesoso | 来源:发表于2021-05-16 11:24 被阅读0次

在每天一个知识点(1)中介绍了虚拟机的组成上包含运行时数据区。
Java虚拟机在执行Java程序的过程中,会将涉及的数据划分到不同的内存区域去管理,而这部分区域就是我们接下来要主要讲解的运行时数据区。
运行时数据区在组成上又分为以下几部分:

  • 程序计数器:该区域占用内存很小,主要是存储当前线程执行的字节码行数,作用时当cpu在不同线程间切换时,保证切换回来后通过程序计数器接着之前继续运行。该区域是虚拟机中唯一没有规定oom的区域,该区域是线程私有的,一个线程会对应一个程序计数器。
  • 虚拟机栈:是线程私有内存,虚拟机栈描述的是java方法执行的内存模型。整个线程执行过程中,每个方法对应着虚拟机栈中的一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息,方法调用对应着一个栈帧的入栈,方法执行结束对应着一个栈帧的出栈。
  • 本地方法栈:和虚拟机栈功能上一致,区别是虚拟机栈为java方法服务,本地方法栈为native方法服务。
  • 堆:是线程共享的内存区域,创建的对象都存储在该区域,垃圾回收器作用在该区域。因此从GC的角度,该区域又分为老年代、年轻代,年轻代又分为Eden 区、From Survivor 区和 To Survivor 区。
  • 方法区:也被称为永久代,是线程共享的内存区域,主要是存储被 JVM 加载的类信息、常量、静态变量、即时编译器编译后的代码等数据;该区域也有垃圾回收,回收目标是常量池和不再使用的类的卸载。

相关文章

  • 每天一个知识点(5)--JVM-运行时数据区

    在每天一个知识点(1)中介绍了虚拟机的组成上包含运行时数据区。Java虚拟机在执行Java程序的过程中,会将涉及的...

  • JVM-运行时数据区

    Java虚拟机在执行Java程序时会把它管理的内存区域划分为若干不通的区域。这些区域有各自的用途,以及创建、销毁时...

  • JVM-运行时数据区

    Java字节码是在jre中运行的,JVM是jre的核心组成成分承担着字节码的解释和执行工作。JVM主要包含3个部分...

  • Java虚拟机内存区域详解

    JVM 运行时的数据区域 首先获取一个直观的认识: 总共也就这么 5 个区(直接内存不属于 JVM 运行时数据区的...

  • jvm 运行时数据区-01

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

  • 02 | JVM-运行时数据区

    所有的java代码无非分三种类型(数据,控制,指令),如下图所示 程序计数器【指令类型】 因为线程的执行是通过cp...

  • 《深入理解Java虚拟机-JVM高级特性与最佳实践》学习总结(第

    一、运行时数据区 JVM将我们机器上的内存当做一个运行时数据区来进行处理。该运行时数据区包括以下几个部分: 方法区...

  • JVM Run-Time Data Areas & 参数相关

    jvm定义了各个运行时数据区: 运行时数据区: <=== 是一个规范,内存结构是一个实现1)部分运行时数据区域是在...

  • JVM-运行时数区

    Runtime data area by shihang.mai 区域备注线程私有/所有线程sharePC程序计数...

  • Android知识笔记

    Java 知识点汇总 JVMJVM 工作流程运行时数据区(Runtime Data Area)方法指令类加载器垃圾...

网友评论

      本文标题:每天一个知识点(5)--JVM-运行时数据区

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