什么时候从堆内存中卸载一个类

时间:2011-09-13 11:08:53

标签: java

  

可能重复:
  Unloading classes in java?

什么时候从内存中卸载一个类?

对于加载类,我们可以调用Class.forName("NameOfClass");或者当我们创建类的对象时,然后将类加载到内存中。

3 个答案:

答案 0 :(得分:3)

<强>类

类将由类加载器加载,并且当该类加载器被垃圾收集时将(可能)卸载。在普通应用程序中,我们不关心类加载器:永远不会卸载类。

班级/对象的实例

当垃圾收集器检测到对象时,将在堆上创建对象并删除,不再有对该实例/对象的引用。

(简而言之,更好的细节:见问题Unloading classes in Java?

答案 1 :(得分:1)

简单来说:

当删除对类(及其实例)的所有引用并且使用的类加载器被垃圾回收时,类将被卸载。

答案 2 :(得分:0)

如果没有定义正好卸载的类,就像没有定义垃圾收集的对象那样。 定义的是可以卸载的时间:

  

当且仅当其定义类时,才可以卸载类或接口   垃圾收集器可以回收加载器