堆溢出

java.lang.OutOfMemoryError: Java heap space —-JVM Heap(堆)溢出

JVM 在启动的时候会自动设置 JVM Heap 的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用 JVM提供的 -Xmn -Xms -Xmx 等选项可进行设置。Heap 的大小是 Young Generation 和 Tenured Generaion 之和。在 JVM 中如果 98% 的时间是用于 GC,且可用的 Heap size 不足 2% 的时候将抛出此异常信息。

解决方法:手动设置 JVM Heap(堆)的大小。

永久代溢出

java.lang.OutOfMemoryError: PermGen space —- PermGen space溢出。

PermGen space 的全称是 Permanent Generation space,是指内存的永久保存区域。为什么会内存溢出,这是由于这块内存主要是被 JVM 存放Class 和 Meta 信息的,Class 在被 Load 的时候被放入 PermGen space 区域,它和存放 Instance 的 Heap 区域不同,sun 的 GC 不会在主程序运行期对 PermGen space 进行清理,所以如果你的 APP 会载入很多 CLASS 的话,就很可能出现 PermGen space 溢出。

解决方法: 手动设置 MaxPermSize 大小

栈溢出

java.lang.StackOverflowError —- 栈溢出

栈溢出了,JVM 依然是采用栈式的虚拟机,这个和 C 与 Pascal 都是一样的。函数的调用过程都体现在堆栈和退栈上了。调用构造函数的 “层”太多了,以致于把栈区溢出了。通常来讲,一般栈区远远小于堆区的,因为函数调用过程往往不会多于上千层,而即便每个函数调用需要 1K 的空间(这个大约相当于在一个 C 函数内声明了 256 个 int 类型的变量),那么栈区也不过是需要 1MB 的空间。通常栈的大小是 1-2MB 的。
通常递归也不要递归的层次过多,很容易溢出。

解决办法:手动设置xss的大小

常见的java内存溢出情况相关推荐

  1. 常见的Java内存溢出情况和实例

    文章目录 内存溢出的原因 栈溢出 栈溢出的第1种情况,死递归,抛出StackOverflowError 栈溢出的第2种情况,线程太多,抛出OutOfMemoryError 堆溢出 1.初始对象太大,超 ...

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

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

  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. tomcat java内存_[Tomcat]Java内存溢出详解Tomcat内存设置

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

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

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

  7. Java内存溢出分析

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

  8. Java 内存溢出(一)原因、复现、排查

    目录 一.内存溢出原因 二.内存溢出实例 1.堆溢出 2.虚拟机栈和本地方法栈溢出 3.方法区和运行时常量池溢出 4.本机直接内存溢出 三.内存溢出排查 内存溢出: 是指应用系统中存在无法回收的内存或 ...

  9. java 内存 溢出_java内存溢出的几种原因和解决办法是什么?

    java内存溢出的几种原因和解决办法是什么? java内存溢出的几种原因和解决办法是: 第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看 ...

最新文章

  1. android 9 pie公司,谷歌Android 9 Pie,真正的安卓派
  2. OPenCv java 形态学操作(12)
  3. bootstrap table教程--使用入门基本用法
  4. NoteRenderer.render logic
  5. React里所有已经加载的module列表
  6. python 打开targz文件_Python下使用pandas打开excel文件并进行处理
  7. MYSQL学习笔记三:日期和时间函数
  8. html中鼠标左键自定义多级菜单,CSS多级菜单的实现代码
  9. (05)System Verilog 数组类型详解
  10. 基于matlab的傅里叶变换,基于matlab的傅里叶变换
  11. java-GUI实现汽车租赁管理系统
  12. mysql添加多字段唯一索引吗_mysql多字段唯一索引
  13. 浅层介质过滤器工作原理介绍
  14. mac虚拟摄像头插件_macOS平台下虚拟摄像头的研发总结
  15. 诺禾:和Java一样能用汉字编程的神奇语言
  16. 使用 pandoc 进行文档转换(markdown转word)
  17. Pycharm使用远程服务器解释器
  18. NLPer福利-中文语言理解基准测【CLUEbenchmark】
  19. 计算机大作业说明文档,计算机大作业.doc
  20. ARM处理器指令集(精简指令集)

热门文章

  1. 东 北 大 学计算机辅助设计,东北大学计算机辅助设计(B)
  2. Centos 7 添加新磁盘
  3. matlab中的i=1 length,黄伟建:matlab for i=1:length(y) 什么意思
  4. 前瞻:Spring 6.0将停止支持Freemarker和JSP
  5. Spring Boot如何实现在线预览?这个开源项目可以学习一下,支持99%常用文件!...
  6. Spring Redis中使用Lua脚本实现高并发原子操作
  7. 2020校招薪酬大比拼,你被倒挂了没?
  8. 微服务落地,我们在考虑什么?
  9. CSS样式----标记选择器
  10. “libc++_shared.so“ not found 解决