美文网首页
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 内存结构(一)

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