JVM
王胡雄
半路出家,立地成猿。
展开
-
JVM架构
一.架构设计 1.架构图 2.基本说明 1)程序计数器:线程私有,唯一没有OOM的区域 2)虚拟机栈:线程私有,基本类型,对象引用,请求深度大于所允许深度报栈溢出, 请求扩展内存不足,报内存溢出异常 3)本地方法栈:线程私有,为虚拟机提供Native方法服务,报OOM和栈溢出 4)堆:对象实例,无法扩展时报OOM 5)方法区:已被加载的类信息,常量,静...原创 2019-10-24 23:36:14 · 230 阅读 · 0 评论 -
判断OOM是否为本机直接内存(direct Memory)溢出
本机直接内存溢出 DirectMemory容量可通过-XX:MaxDirectMemorySize指定,如果不指定,则默认与Java 堆最大值(-Xmx指定)一样,代码清单2-9越过了DirectByteBuffer类,直接通过反射获取 Unsafe实例进行内存分配(Unsafe类的getUnsafe()方法限制了只有引导类加载器才会返回 实例,也就是设计者希望只有rt.jar中的...原创 2019-10-16 17:57:18 · 908 阅读 · 0 评论