堆溢出

  • 原因:老年代没有足够的空间存放即将进入老年代对象(或者没有连续的空间存下某个大对象),1.多次gc没有回收的对象 2. ygc后,s区满了,多余的对象直接进入老年代,3.大对象直接进入老年代
  • 解决办法:1.检查是否存在内存泄漏,2.合理设置 新生代和老年代的比例 3.增大 堆内存 -xmx

元数据区溢出

  • 原因:1.加载大量的class(包括ASM、Cglib、javassit、动态代理库生成的)2.大量JSP文件编译成Servlet类文件 3.对于OSGI的应用,被不同的加载器加载同一个类会保存多分.
  • 解决办法:1.合理使用ClassLoader,并定期回收2.减少系统生成类的数量 3.增大-XX:MetaspaceSize -XX:MaxMetaspaceSize

栈溢出(stackoverflow)

  • 原因:1.栈的调用太深(大部分是写递归死循环)2.方法中使用到大量局部变量
  • 解决办法:1.检查代码的递归调用是否存在问题 2.增大 栈空间大小 -Xss

无法创建线程(unable to create native thread)

  • 原因:1.程序创建的线程数超过了操作系统的限制,2.系统内存耗尽,无法为新线程分配内存( 栈空间大小*线程 + 堆大小+元数据区 +直接内存 > 系统内存)
  • 解决办法:1.减少 虚拟机栈大小 -Xss 2.减少堆大小 -xmx

直接内存溢出

  • 原因:1.内存泄漏,导致直接内存无法被回收 2.大量使用nio 3.系统内存耗尽
  • 解决办法: 1.检查代码,及时释放不再使用的直接内存 2.增大直接内存大小-XX:MaxDirectMemorySize 3.减少堆空间大小

转载于:https://www.cnblogs.com/lizo/p/10333186.html

java内存溢出总结(1.8)相关推荐

  1. Java内存溢出详解之Tomcat配置

    Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...

  2. SpringBoot如何处理java内存溢出

    在上线的项目中,本地测试没有问题,部署上去就会出现java 内存溢出 java.lang.OutOfMemoryError: Java heap space 解决方案: -Xms512m -Xmx51 ...

  3. java 二维数组内存溢出_模拟Java内存溢出

    本文通过修改虚拟机启动参数,来剖析常见的java内存溢出异常(基于jdk1.8). 修改虚拟机启动参数 这里我们使用的是IDEA集成开发环境,选择Run/Debug Configurations 然后 ...

  4. Java内存溢出详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  5. Java内存溢出分析

    内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题.内存溢出与锁表则不然,一 ...

  6. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

    导致OutOfMemoryError异常的常见原因有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码 ...

  7. java内存溢出分析工具:jmap使用实战

    java内存溢出分析工具:jmap使用实战 在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap.  1 使用命令  在环境是linux+jdk1.5以上,这个工具是自带的,路 ...

  8. tomcat java内存_[Tomcat]Java内存溢出详解Tomcat内存设置

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1.java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在启 ...

  9. Java基础学习总结(30)——Java 内存溢出问题总结

    Java中OutOfMemoryError(内存溢出)的三种情况及解决办法 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各 ...

  10. Java内存溢出异常(下)

    此篇是上一篇文章Java内存溢出异常(上)的续篇,没有看过的同学,可以先看一下上篇.本篇文章将介绍剩余的两个溢出异常:方法区和运行时常量池溢出. 方法区和运行时常量池溢出 这部分为什么会放在一起呢?在 ...

最新文章

  1. View的Touch事件分发(二.源码分析)
  2. 如何破解安卓手机上的图形锁(九宫格锁)
  3. mybatis10--自连接多对一查询
  4. linux双核对线程,Linux检查双核(及多核)CPU信息
  5. FFMPEG结构体分析之AVFrame
  6. 锁住文件linux,linux新手教程之创建锁文件的方法
  7. 【47.92%】【hdu 5763】Another Meaning
  8. vue 中 created 和 mounted 钩子生命周期 问题
  9. java条件触发_java – 当给定75:android时,条件不会触发
  10. ubuntu 18 安装xgboost GPU版本
  11. 五种进程调度的算法实现(二)
  12. pdf reference官方指南之-语法基础和文件结构
  13. 使用SSE指令集优化memcpy
  14. php laypage,LayUI分页和LayUI laypage分页区别详解
  15. wep破解——模拟chopchop攻击
  16. python多进程假死
  17. 爬取起点小说总排行榜
  18. 直观理解Dilated Convolution
  19. dk 识别物体出现的问题
  20. 【王道】倒可乐、广度优先算法

热门文章

  1. oracle临时表空间地址,Oracle认证:详解OracleTemp临时表空间处理方法
  2. MFC中五个初始类的作用
  3. 东南大学计算机学院张敏灵,东南大学张敏灵教授来我校作学术报告
  4. 天池 在线编程 订单分配(回溯)
  5. LeetCode 1167. 连接棒材的最低费用(优先队列+贪心)
  6. LeetCode 1404. 将二进制表示减到 1 的步骤数(字符串加法)
  7. LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)
  8. 关于二叉树的程序 c语言,请教关于建立二叉树程序(c语言的)
  9. 往java里输入坐标值_java.让用户输入x坐标,和y坐标。当用户输入完x坐标(比如200),敲enter,...
  10. Flink中的容错机制