美文网首页
JVM 内存结构(一)

JVM 内存结构(一)

作者: AD刘涛 | 来源:发表于2021-07-26 20:10 被阅读0次

JVM内存结构(如下)

JVM内存结构

其中方法区线程共享虚拟机本地方法栈程序计算器线程隔离,每个线程各有一份。

其中虚拟机栈结构如图
虚拟机栈结构
本地方法栈

本地方法都是由C语言去实现的,如unsafe类。

程序计数器

用来记录各个线程执行的字节码地址。

方法区
方法区结构
常量池 --- 静态常量池 (也叫class文件常量池)主要存放:
  • 字面量:例如文本字符串、final修饰的常量
  • 符号引用:例如类和接口的权限定名、字段名的名称和描述符、方法的名称和描述符。
常量池 --- 运行时常量池
  • 当类加载到内存中后,JVM就会将静态常量池中的内容存放到运行时的常量池中;运行时常量池里面存储的主要是编译期间生成的字面量、符号引用等等。
常量池 --- 字符串常量池
  • 字符串常量池,也可以理解成运行时常量池分出来的一部分,类加载到内存的时候,字符串会存储到字符串常量池里面。
案例
public class JVMTest1 {

    public static void main(String[] args) {
        Demo demo = new Demo("aaa");
        demo.printName();
    }
}

class Demo {

    private String name;

    public Demo(String name) {
        this.name = name;
    }

    public void printName() {
        System.out.println(this.name);
    }
} 

以上代码的在JVM中的分布如下图所示

截屏2021-07-26 20.06.53.png

相关文章

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

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

  • JVM学习笔记

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

  • JVM 内存结构解析

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

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

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

  • JVM-02

    JVM内存结构

  • JVM

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

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

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

  • java线程安全相关问题

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

  • JVM(七):JVM内存结构

    JVM(七):JVM内存结构 在前几节的文章我们多次讲到 Class 对象需要分配入 JVM 内存,并在 JVM ...

  • java内存模型

    java代码是运行在jvm上面的,java的运行时内存结构即是jvm运行时结构。 java内存结构从内存是否共享的...

网友评论

      本文标题:JVM 内存结构(一)

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