JVM内存溢出

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

内存溢出异常

堆溢出:java heap space,通过-Xmx 和-Xms设置堆的最大、最小容量;

栈溢出:StackOverflowError 或者 OutOfMemeryError

引导说明操作系统分配给每个进程的内存是有限制的,譬如32位的 Windows限制为2GB 。虚拟机提供了参数来控制Java堆和方法区的这两部分内存的最大值,剩余的内存为2GB(操作系统限制)减去Xmx(大堆容量),再减去MaxPermSize (最大方法区容截),程序计数器消牦内存小,可以忽略掉。如果虚拟机进程本身耗费的内存不计算在内,剩下的内存就由虚拟机找和本地方法栈瓜分了,每个线程分配到的栈容量越大,可以建立的线数量自然就越少,建立线程时就容易把剩下的内存耗尽。

 

方法区溢出:PermGen space,通过-XX:PermSize 和 -XX:MaxPermSize限制方法区的大小;

运行时常量池溢出:常量池和方法区公用一块内存;

 

内存泄露:本该回收的内存,由于和GC roots存在引用关系,导致不能回收,也不能被新对象引用;

发生的原因:一个声明周期长的对象,引用了声明周期短的对象;

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看