您现在的位置是:首页 > 文章 > Java工程师进阶之路之JVM系列(六) —— 对象内存布局 网站文章

Java工程师进阶之路之JVM系列(六) —— 对象内存布局

孙玉超 2020-08-10 18:42:03 0 评论 1429 浏览 0 收藏 0


以前一直弄不清楚对象内部到底有什么,只知道有成员变量,模糊不清、似懂非懂。现在深度剖析一下对象内部内存布局,GO,GO,GO!


想来想去不知道该从何说起,那么就直接演示 demo 吧,以下面代码为例

public class Test {
    private int number = 1000;
    private User user = new User();
    public static void main(String[] args) {
            Test test = new Test();
    }
}

class User{
    private int id;
    private String username;
}

这段代码很短很简单,运行时 JVM 内存分布如下图(这张图画的差点手抽筋……)



其中虚线箭头表示内部存储的数据,实线箭头表示指针。上图完整的说明了这段代码执行时,JVM 内部内存布局图。值得注意的是对象中的静态变量存储在堆中该类所属的唯一 Class 实例中,并不在方法区。


待完善



转载请注明出处:转载请注明出处

上一篇 : Java工程师进阶之路之JVM系列(五) —— 方法区 下一篇 : Java工程师进阶之路之多线程系列(一) —— 多线程基础

留言评论

所有回复

暮色妖娆丶

96年草根站长,2019年7月接触互联网踏入Java开发岗位,喜欢前后端技术。对技术有强烈的渴望,2019年11月正式上线自己的个人博客