首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

不再使用的类gc回收吗?该如何解决

2014-01-12 
不再使用的类gc回收吗?不再使用的类,gc回收吗?还是只回收对象?[解决办法]一般情况下不会回收,因为程序不知

不再使用的类gc回收吗?
不再使用的类,gc回收吗?还是只回收对象?
[解决办法]
一般情况下不会回收,因为程序不知道什么时候又会用到这个类。但是有两种特殊情况:

1、通过特殊的参数可以让 JVM 回收类的定义,更多内容请自己搜索“CMSClassUnloadingEnabled”;
2、在自定义 ClassLoader 下加载的类,当 ClassLoader 被回收时,类的定义也会被回收。
[解决办法]
大增和溢出怎么可能一样。溢出也分为因为设置不对溢出,和因为程序溢出。大增也分为正常和不正常。两个词也不一样
[解决办法]

引用:
Quote: 引用:

一般情况下不会回收,因为程序不知道什么时候又会用到这个类。但是有两种特殊情况:

1、通过特殊的参数可以让 JVM 回收类的定义,更多内容请自己搜索“CMSClassUnloadingEnabled”;
2、在自定义 ClassLoader 下加载的类,当 ClassLoader 被回收时,类的定义也会被回收。
软件运行过程中内存大增,这不等于某种意义上的内存溢出吗?


一般来说,JVM 在运行过程中,类的数量是不会无限增加的,类加载一次就完了,而对象则在不停的创建和回收。所以 PermGen 空间的增加被视为是可控的。

热点排行