虚拟机内存:
线程独有: 程序计数器 虚拟机栈 本地方法栈
线程共有: Java堆 方法区(运行时常量池) 注 :永久代
Java 堆 给Java对象分配内存的方法 : 1 .指针碰撞 2 空闲列表
对象存储布局分为3块区域:对象头,实例数据,对齐填充
Java heap space Java堆内存泄漏或内存溢出 通过设置 -Xms -Xmx
StacKOverflowError 虚拟机栈内存 -Xss
1 线程请求的栈深度大于虚拟机所允许的最大深度 StacKOverflowError
2 虚拟机在扩展栈时无法申请到足够的内存空间 OutOfMemoryError
PermGen space 方法区和运行时常量池 -PermSize -MaxPermSize
本机直接内存溢出
如果OOM后dump文件很小,则可能是程序直接或者间接使用了NIO
本文详细介绍了Java内存模型的各个组成部分,包括线程独有的程序计数器、虚拟机栈及本地方法栈;线程共有的Java堆和方法区。探讨了Java堆如何为对象分配内存的不同方法,以及对象在内存中的存储布局。此外,还讨论了各种内存溢出错误的原因及解决办法。
3369

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



