jvm区域
内存分布
方法区
1 | 线程共享 |
运行时常量池
1 | 方法区的一部分,class文件中除了有类的版本,字段,方法,接口等描述信息外, |
虚拟机栈
1 | 线程私有 |
本地方法栈
堆
1 | -Xms -Xmx |
程序计数器
1 | 线程私有 |
直接内存
1 | jdk1.4加入 |
对象创建
1 | 1,连续空间-->使用指针碰撞(谁先申请算谁的)[serial,parnew带压缩整理,简单高效] |
对象的内存布局
1 | 对象在堆内存的储存布局分为3部分:对象头(header),实例数据(instance data),对齐填充(padding) |
对象的访问定位
1 | 方式 |
实战内存异常
堆
1 | -Xms -Xmx |
栈
1 | -Xss |
方法区和运行时常量池溢出
1 | -XX:PermSize -XX:MaxPerSize |
直接内存
1 | -XX:MaxDirectMemorySize |