美文网首页
JVM的内存布局?

JVM的内存布局?

作者: 嘘寒问暖 | 来源:发表于2022-04-28 23:25 被阅读0次
内存布局

Java虚拟机主要包含⼏个区域:

堆:堆Java虚拟机中最⼤的⼀块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间。堆区细分为Young区年轻代和Old区⽼年代,其中年轻代⼜分为Eden、S0、S1 3个部分,他们默认的⽐例是8:1:1的⼤⼩。

栈:栈是线程私有的内存区域,每个⽅法执⾏的时候都会在栈创建⼀个栈帧,⽅法的调⽤过程就对应着栈的⼊栈和出栈的过程。每个栈帧的结构⼜包含局部变量表、操作数栈、动态连接、⽅法返回地址。局部变量表⽤于存储⽅法参数和局部变量。当第⼀个⽅法被调⽤的时候,他的参数会被传递⾄从0开始的连续的局部变量表中。操作数栈⽤于⼀些字节码指令从局部变量表中传递⾄操作数栈,也⽤来准备⽅法调⽤的参数以及接收⽅法返回结果。动态连接⽤于将符号引⽤表示的⽅法转换为实际⽅法的直接引⽤。

元数据:在Java1.7之前,包含⽅法区的概念,常量池就存在于⽅法区(永久代)中,⽽⽅法区本身是⼀个逻辑上的概念,在1.7之后则是把常量池移到了堆内,1.8之后移出了永久代的概念(⽅法区的概念仍然保留),实现⽅式则是现在的元数据。它包含类的元信息和运⾏时常量池。Class⽂件就是类和接⼝的定义信息。运⾏时常量池就是类和接⼝的常量池运⾏时的表现形式。

本地⽅法栈:主要⽤于执⾏本地native⽅法的区域

程序计数器:也是线程私有的区域,⽤于记录当前线程下虚拟机正在执⾏的字节码的指令地址

相关文章

  • [JVM] JVM内存结构浅析

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

  • JVM-对象内存布局

    jvm-对象内存布局 对象内存结构概述 对象的创建过程: jvm将对象所在的class文件加载到方法区中 jvm读...

  • 高级Java开发面试常用题的答案2

    三、JVM · JVM堆的基本结构。 java_heap_struct.jpg 参考阅读:JVM内存堆布局图解分析...

  • GC

    ================ GC 算法 ================= 一文看懂 JVM 内存布局及 ...

  • JVM内存布局

    JVM虚拟机内存结构,以及它们的作用 线程私有:栈区,本地方法栈,pc指针线程共有:方法区,堆区 JAVA的JVM...

  • JVM内存布局

    JVM在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。 这些组成部分一些事线程私有的,其...

  • JVM 内存布局

    Heap(堆区) Heap 是 OOM 主要发源地。堆分为两大块:新生代和老年代。对象产生之初在新生代,步入暮年时...

  • JVM内存布局

    【文章仅供非商业用途或交流学习使用】 下图是经典的JVM内存布局: 1 Heap (堆) ...

  • JVM 内存布局

    对于Java程序员来说,由于JVM有自动内存管理机制(内存分配、内存回收),所以我们写代码时不需要考虑内存的使用问...

  • JVM的内存布局?

    Java虚拟机主要包含⼏个区域: 堆:堆Java虚拟机中最⼤的⼀块内存,是线程共享的内存区域,基本上所有的对象实例...

网友评论

      本文标题:JVM的内存布局?

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