常见的java内存溢出情况
堆溢出
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内存溢出情况相关推荐
- 常见的Java内存溢出情况和实例
文章目录 内存溢出的原因 栈溢出 栈溢出的第1种情况,死递归,抛出StackOverflowError 栈溢出的第2种情况,线程太多,抛出OutOfMemoryError 堆溢出 1.初始对象太大,超 ...
- Java内存溢出详解之Tomcat配置
Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...
- java 二维数组内存溢出_模拟Java内存溢出
本文通过修改虚拟机启动参数,来剖析常见的java内存溢出异常(基于jdk1.8). 修改虚拟机启动参数 这里我们使用的是IDEA集成开发环境,选择Run/Debug Configurations 然后 ...
- Java内存溢出详解
Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...
- tomcat java内存_[Tomcat]Java内存溢出详解Tomcat内存设置
Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1.java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在启 ...
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
导致OutOfMemoryError异常的常见原因有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码 ...
- Java内存溢出分析
内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题.内存溢出与锁表则不然,一 ...
- Java 内存溢出(一)原因、复现、排查
目录 一.内存溢出原因 二.内存溢出实例 1.堆溢出 2.虚拟机栈和本地方法栈溢出 3.方法区和运行时常量池溢出 4.本机直接内存溢出 三.内存溢出排查 内存溢出: 是指应用系统中存在无法回收的内存或 ...
- java 内存 溢出_java内存溢出的几种原因和解决办法是什么?
java内存溢出的几种原因和解决办法是什么? java内存溢出的几种原因和解决办法是: 第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看 ...
最新文章
- android 9 pie公司,谷歌Android 9 Pie,真正的安卓派
- OPenCv java 形态学操作(12)
- bootstrap table教程--使用入门基本用法
- NoteRenderer.render logic
- React里所有已经加载的module列表
- python 打开targz文件_Python下使用pandas打开excel文件并进行处理
- MYSQL学习笔记三:日期和时间函数
- html中鼠标左键自定义多级菜单,CSS多级菜单的实现代码
- (05)System Verilog 数组类型详解
- 基于matlab的傅里叶变换,基于matlab的傅里叶变换
- java-GUI实现汽车租赁管理系统
- mysql添加多字段唯一索引吗_mysql多字段唯一索引
- 浅层介质过滤器工作原理介绍
- mac虚拟摄像头插件_macOS平台下虚拟摄像头的研发总结
- 诺禾:和Java一样能用汉字编程的神奇语言
- 使用 pandoc 进行文档转换(markdown转word)
- Pycharm使用远程服务器解释器
- NLPer福利-中文语言理解基准测【CLUEbenchmark】
- 计算机大作业说明文档,计算机大作业.doc
- ARM处理器指令集(精简指令集)
热门文章
- 东 北 大 学计算机辅助设计,东北大学计算机辅助设计(B)
- Centos 7 添加新磁盘
- matlab中的i=1 length,黄伟建:matlab for i=1:length(y) 什么意思
- 前瞻:Spring 6.0将停止支持Freemarker和JSP
- Spring Boot如何实现在线预览?这个开源项目可以学习一下,支持99%常用文件!...
- Spring Redis中使用Lua脚本实现高并发原子操作
- 2020校招薪酬大比拼,你被倒挂了没?
- 微服务落地,我们在考虑什么?
- CSS样式----标记选择器
- “libc++_shared.so“ not found 解决