`
daiyongcai
  • 浏览: 5526 次
社区版块
存档分类
最新评论

java内存溢出至permgen OOM解析

阅读更多
现在,有关讨论JAVA内存泄漏的文章很多。java的内存泄漏基本上按照内存区域的划分可以分为:

堆(heap)内存泄漏:大家都比较熟悉
栈(stack)内存泄漏:当前线程运行期间维护的中间变量等信息过多,例如常见的死循环引起stack over flow
方法区(permanent heap)内存泄漏:分析其原因的文章较少,本文的着重点。
网上关于讨论PermGen OOM的资料很多,但是深入分析PermGen区域内存溢出原因的资料很少。本篇文章尝试全面分析一下PermGen OOM的原因,其中涉及到了Java虚拟机运行时数据区、类型装载、类型卸载等,测试代码涉及到了JMX协议。
【相关知识】

Java类加载相关的知识,《Java类加载原理简析》中结合JDK的代码实现对Java类加载的原理做了比较深入的分析.


原文章来自
http://www.cnblogs.com/zhuxing/articles/1247621.html
分享到:
评论

相关推荐

    java内存溢出原因

    本篇文章将详细解析三种常见的Java内存溢出类型:JVM PermGen space溢出、JVM heap space溢出以及Native Heap溢出,并提供相应的解决方案。 1. **JVM PermGen space溢出** - ** PermGen space** 是JVM内存模型中的...

    websphere内存溢出.pdf

    当JVM的堆内存或永久代(PermGen)空间不足时,会导致应用程序崩溃。Websphere应用服务器中的内存管理主要依赖于JVM。 #### 三、Websphere内存溢出的常见原因 1. **对象未释放:** - 在Websphere中,如果某些对象...

    深入java 虚拟机

    常见的OOM异常有`OutOfMemoryError: Java heap space`(堆内存溢出)、`PermGen space`(永久代溢出,Java 8后已不存在)和`Metaspace`(元空间溢出)。 9. **线程模型** JVM支持多线程编程,每个线程有自己的程序...

    20道面试官常问的JVM面试题!.zip

    5. **内存溢出问题**:分析和解决常见的堆溢出(OOM)和栈溢出问题。 6. **垃圾收集算法**:理解标记-清除、复制、标记-整理和分代收集这几种基本算法。 7. **垃圾收集器组合**:熟悉各种GC组合,如Serial+Serial ...

    Java虚拟机(JVM)面试题51道 pdf文档整理.zip

    10. **JVM内存溢出问题**:常见的有堆溢出(OOM: OutOfMemoryError - heap space)、 PermGen/元空间溢出、方法区溢出等,需要合理设置JVM参数并优化代码以避免。 通过掌握以上知识点,Java开发者不仅可以编写高...

    java面试题独家整理冲击年薪50w!.docx

    - 内存溢出(OOM):堆溢出、栈溢出、方法区溢出等,分析和解决策略。 - 类加载器:Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader以及自定义类加载器。 【Spring面试题】 Spring框架涉及的知识...

    JVM虚拟机面试题汇总

    虽然方法区和Java堆一样,也会受到内存溢出的影响,但方法区的“内存溢出”异常表现并不是`OutOfMemoryError`,而是`PermGen space`的错误,这是由于HotSpot VM使用-XX:MaxPermSize来控制这块内存。 #### 二、JVM...

    字节跳动,蘑菇街面经1

    - Java内存分为堆内存、栈内存、方法区(JVM规范中的 PermGen 或 Metaspace 区域)以及程序计数器和本地方法栈。对象主要在堆内存中分配,而方法的局部变量存储在栈中。 - 内存溢出(OOM)通常发生在堆或方法区,...

    JVM常用参数设置

    3. ** PermGen / Metaspace **(Java 8之后): - `-XX:MaxPermSize`(Java 8之前):设定永久代的最大大小。 - `-XX:MetaspaceSize`(Java 8之后):设定元空间的初始大小。 - `-XX:MaxMetaspaceSize`(Java 8...

    JVM面试题、多线程面试题

    4. **内存溢出(OOM)问题**:分析堆溢出(Heap OOM)和 PermGen/Metaspace 溢出的原因及解决策略。 5. **类加载器**:深入理解Bootstrap ClassLoader、Extension ClassLoader、AppClassLoader和自定义类加载器的...

    重要基础知识.docx

    22. **常见的OOM异常及解决思路**:如堆溢出、 PermGen空间溢出,可以通过调整JVM内存、减少对象创建、合理使用缓存等方式解决。 23. **索引原理**:索引加快了数据库查询速度,常见类型有B树、哈希索引等,但会...

    阿里巴巴 面经

    - **PermGen Space**:存放类元数据,已被Metaspace取代。 - **Metaspace**:存放类元数据,位于本地内存中,不受垃圾回收机制管理。 **45. 出现OOM如何解决** - 调整JVM参数,增加堆内存大小。 - 优化代码,避免...

Global site tag (gtag.js) - Google Analytics