内存分区
程序计数器(线程私有)
Java虚拟机栈(线程私有)
本地方法栈(线程私有)
Java堆 (线程共享)
方法区(线程共享) 运行时常量池
对象创建
内存分配
指针碰撞(要求堆中内存规整)
空闲列表
内存空间初始化(不包括对象头)
设置对象头
执行<init>方法(程序员数据)
对象内存布局
对象头
对象自身运行时数据(哈希码,线程锁,GC分代年龄等)
类型指针(确定对象是哪个类实例)
实例数据(父类子类变量方法)
对齐填充(对象内存必须的8字节整数倍)
对象访问定位
句柄访问(堆上建句柄池,栈上reference存储句柄地址)(好处:对象移动时句柄地址稳定)
直接指针访问(reference存储对象地址)(好处:快)
内存溢出
堆溢出
内存泄露(查看GC引用链)
内存溢出(查看堆参数)
栈溢出
单线程(栈帧太大或栈容量太小)
多线程(
《深入理解java虚拟机》之内存管理
最新推荐文章于 2024-11-05 18:52:29 发布
本文详细探讨了《深入理解Java虚拟机》中的内存管理部分,涵盖了堆内存、栈内存、方法区、本地方法栈以及垃圾收集机制等关键概念,旨在帮助读者深入理解Java应用程序如何在虚拟机中高效地使用内存。

订阅专栏 解锁全文
8949

被折叠的 条评论
为什么被折叠?



