JVM 内存管理机制
1. 内存分配图: 两栈一区一堆一计数
方法区里面 包含了运行时常量
2. 对象创建过程:
- new A() 首先加载A的字节码。
- 分配内存,内存分配方式分两种,如果采用带压缩的垃圾回收策略,则采用“指针碰撞”的方式分配(即空闲内存连续,直接移动指针); 如果采用非压缩的垃圾回收策略,则采用空闲列表的方式分配内存。空间分配如果保证多线程问题,一个是分配加锁,另一种是TLAB本地线程缓冲分配。
- 对象定位。 句柄方法 + 直接指针方式
句柄方法:
直接指针方式 :