Java方法区和运行时常量池内存溢出出现的原因,现象,以及解决思路

运行时常量池其实属于方法区的一部分

 

运行时常量池内存溢出的原因:

不断创建常量,比如字符串等。

 

运行时常量池内存溢出的现象:

java.lang.outofmemoryerror: pergen space这也间接说明了运行时常量池其实属于方法区的一部分

 

方法区内存溢出的原因:

不断创建大量的类,导致类信息过多等。比如使用框架或者对代码进行修改的时候,不会对原来的类进行直接修改,而是对类进行增强,增强的类越多,就会需要更大的方法区来保存动态生成的class。

 

方法区内存存溢出的现象:

java.lang.outofmemoryerror: pergen space

 

解决思路:

通过限定方法区的大小,限制了方法区的大小,也就限制了常量池的大小。

-XX: Permsize=10M      -XX:MaxPernsize=10M

发布了415 篇原创文章 · 获赞 434 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41901915/article/details/103526172
今日推荐