前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java内存溢出

Java内存溢出

作者头像
用户2909867
发布2018-08-22 11:04:38
2.6K0
发布2018-08-22 11:04:38
举报
文章被收录于专栏:互联网大杂烩互联网大杂烩

Java内存溢出

堆溢出

大量对象占据了堆空间,而且这些对象是强引用,导致无法回收

直接内存溢出

Java的NIO支持直接内存使用,从堆外获得内存空间,由于直接内存没有被Java虚拟机完全托管,若使用不当,容易触发直接内存溢出。

多线程导致内存溢出

线程的栈空间也是在堆外分配的,和直接内存相似,线程过多,会导致内存溢出。

永久区溢出

永久区是存放元数据的区域。如果定义了太多类型,那么永久区有可能溢出。

GC效率低下引起内存溢出

内存回收时,如果GC效率低下,那么系统的性能会收到严重的影响。如果系统堆空间太小,那么GC所占的时间就会较多,并且回收所释放的内存就会较少, 根据GC所占用的系统时间,以及释放的内存大小,虚拟机会评估GC的效率,一旦认为GC的效率过低,就会抛出内存溢出异常。

关于String的内存溢出

java.lang.String主要由3部分组成:代表字符数组的Value、偏移量offset和长度count. 例如: 字符串value数组包含100个字节,而count长度只有1个字节,那么这个String实际只有1个字节,却占据100个字节,那剩余99个就属于泄露的部分。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.02.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java内存溢出
    • 堆溢出
      • 直接内存溢出
        • 多线程导致内存溢出
          • 永久区溢出
            • GC效率低下引起内存溢出
              • 关于String的内存溢出
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档