美文网首页js css html
浅聊一下JVM内存结构

浅聊一下JVM内存结构

作者: Fightover | 来源:发表于2022-07-25 17:12 被阅读0次

VM内存结构大致如下:
其中白色块部分是线程共享的,粉色块是线程隔离的


堆是JVM中最大的一块内存空间,绝大部分对象都存在堆内存内,然后堆又可以做以下细分:

虚拟机栈
虚拟机栈由栈帧组成,每一次方法调用都会创建一个栈帧,然后去压栈。当方法返回时,则对应着出栈操作。

栈帧中包含局部变量表、操作数栈、指向运行时常量池的引用、方法返回地址、动态链接。
方法里的变量在执行时,会从局部变量表或对象实例的字段里复制变量或常量,放入操作数栈,计算时则从操作数栈里放入或取走数据。
Powered by Ad.Plus
本地方法栈
本地方法栈和虚拟机栈功能类似,虚拟机栈管理JAVA方法,而本地方法栈管理NATIVE方法
程序计数器
用来记录各个线程执行的字节码地址
方法区
方法区包含类信息、运行时常量池、字符串常量池和静态变量

  • 静态常量池:也叫class文件常量池,主要存放:

  • 字面量:例如文本字符串、final修饰的常量

  • 符号引用:例如类和接口的全限定名、字段的名称和描述符、方法的名称和描述符

  • 运行时常量池:当类加载到内存中后,JVM就会将静态常量池中的内容存放到运行时的常量池中;运行时常量池里面存储的主要是编译器间生成的字面量、符号引用等等

  • 字符串常量池:也可以理解成运行时常量池分出来的一部分,类加载到内存的时候,字符串会存到字符串常量池里面

相关文章

  • 浅聊一下JVM内存结构

    VM内存结构大致如下:其中白色块部分是线程共享的,粉色块是线程隔离的 堆堆是JVM中最大的一块内存空间,绝大部分对...

  • JVM内存结构和Java内存模型

    最近看到两个比较容易混淆的概念:JVM内存结构和Java内存模型 JVM内存结构JVM内存结构或者说内存模型指的是...

  • JVM 内存结构解析

    1. JVM内存结构 (1) JDK1.7的JVM内存结构 JVM内存结构主要有三大块:堆内存、方法区和栈。 堆内...

  • JVM学习笔记

    一、JVM的结构图 1.1 Java内存结构 JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大...

  • JVM-02

    JVM内存结构

  • JVM内存模型和JVM内存结构的区别

    JVM内存模型与内存结构不是同一个概念,JVM内存结构是从运行时数据区的结构角度描述的概念,而JVM内存模型是从主...

  • 《深入理解java虚拟机》之JVM内存结构总结

    JVM内存结构 JVM内存结构不光是只有堆内存和栈内存,实际情况要复杂很多,主要包含以下结构。 程序计数器 每个线...

  • JVM

    简介 Jvm 系列一:Java类的加载机制Jvm系列二:JVM内存结构 --内存泄漏与内存溢出Jvm系列三:GC算...

  • java线程安全相关问题

    可见性问题的原因: 1.JVM内存结构: JVM的内存结构分为主内存(heap)和工作区内存。 主内存可以存放多线...

  • Java大厂面试题—虚拟机(一),Java面试必问

    讲一下JVM内存结构? JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地方法栈、堆、方法区。 程序计数器 线...

网友评论

    本文标题:浅聊一下JVM内存结构

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