JVM内存区域与内存溢出异常

  1. 云栖社区>
  2. 博客>
  3. 正文

JVM内存区域与内存溢出异常

邴越 2016-05-05 15:32:16 浏览1247
展开阅读全文

Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常。

>>运行时数据区域的划分

(1)程序计数器
程序计数器(Program Counter Register)是一块比较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器;
PCR为线程私有内存,程序计数器是唯一一个在Java虚拟机规范中没有规定任何OOM情况的区域。

(2)方法区
方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
也称为永久代(Permanent Generation)但随着Java8的到来,已放弃永久代改为采用Native Memory来实现方法区的规划。
此区域回收目标主要是针





























网友评论

登录后评论
0/500
评论
邴越
+ 关注