美文网首页工作生活
java虚拟机的内存分区

java虚拟机的内存分区

作者: eliteTyc | 来源:发表于2019-07-03 20:35 被阅读0次
写在前面:

java虚拟机再执行java程序的时候会将虚拟机所管理的内存分成若干个功能不同的区域,虚拟机所管理的这部分内存我们称为运行时数据区域

‘运行时数据区域’分区图
321B64F4-5530-4473-9E84-596D093B1BFA.png
分区解释:
  1. 方法区:
  • 方法区用于存储已经被虚拟机加载的类信息,常量,静态变量,被编译器编译后的代码等
  • 方法区中还存在运行时常量池,这个区域用于存放编译期产生的字面量和符号信息
  • 各线程共享
  1. 栈区:
  • 栈区分为虚拟机栈和本地方法栈,虚拟机栈描述的是java方法的执行内存模型,每个方法再执行的时候都会创建一个栈帧(stack frame),用于存储局部变量表,操作数栈,动态链接,方法出口等信息,虚拟机栈就是存储该栈帧,每个方法的执行和执行结束就是一个栈帧的入栈与出栈;本地方法栈与虚拟机栈的作用极其相似,只是针对的对象不同,虚拟机栈是程序员写的代码方法执行的存储,而本地方法栈是针对Native 方法
  • 各线程私有
  • 堆是java虚拟机中管理的最大一块内存,主要存储对象的实例,也就是java代码中的new 关键字创建的对象实例都存放在这里。
  • 各线程共享
  1. 程序计数器
  • 记录当前线程执行的字节码的行号

相关文章

  • Java内存模型(JMM)

    Java内存模型(JMM) 我们常说的JVM内存模式指的是JVM的内存分区;而Java内存模式是一种虚拟机规范。 ...

  • JMM内存模型详解

    Java内存模型(JMM) 我们常说的JVM内存模式指的是JVM的内存分区;而Java内存模式是一种虚拟机规范。 ...

  • Java内存模型以及分区

    Java内存模型以及分区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这...

  • 【面试V01】java内存分区、堆栈区别

    java内存分区 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途...

  • JVM:图文解析 Java内存结构

    前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望...

  • 「秒懂!」JVM虚拟机图文详解!一点都不难

    前言: 了解Java中的对象、变量等存放的内存区域十分重要本文将全面讲解Java虚拟机中的内存模型 & 分区,希望...

  • 13 张图解 Java 中的内存模型

    前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望...

  • Java内存模型

    前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望...

  • 了解Java中的内存模型只需13张图!

    前言 了解Java中的对象、变量等存放的内存区域十分重要 本文将全面讲解Java虚拟机中的内存模型 & 分区,希望...

  • 4.jvm面试题

    [TOC] 1.jvm分区? 2.常见的内存溢出异常 3.hotSpot虚拟机对象探秘 见深入java虚拟机第二章...

网友评论

    本文标题:java虚拟机的内存分区

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