程序员社区

(JVM面试题) 谈谈对 OOM 的认识

除了程序计数器,其他内存区域都有 OOM 的风险。

  • 栈一般经常会发生 StackOverflowError,比如 32 位的 windows 系统单进程限制 2G 内存,无限创建线程就会发生栈的 OOM
  • Java 8 常量池移到堆中,溢出会出 java.lang.OutOfMemoryError: Java heap space,设置最大元空间大小参数无效
  • 堆内存溢出,报错同上,这种比较好理解,GC 之后无法在堆中申请内存创建对象就会报错
  • 方法区 OOM,经常会遇到的是动态生成大量的类、jsp 等
  • 直接内存 OOM,涉及到 -XX:MaxDirectMemorySize 参数和 Unsafe 对象对内存的申请

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (JVM面试题) 谈谈对 OOM 的认识

一个分享Java & Python知识的社区