使用Class作为缓存的弱哈希映射中的键(WeakHashMap)是否值得?众所周知,类对象是在程序启动时创建的,在完成时会被销毁。那么,有没有可能做到这一点,或者我对此有一些误解?
答案 0 :(得分:5)
在类加载器加载时加载一个类。如果卸载了ClassLoader,那么它的类也是如此。如果可以清除所有类,则无法卸载ClassLoader,因此如果您想要卸载类加载器,则使用Weak的Classes集合是一个非常好的主意。
在一个简单的Java Se程序中,您可能有两个或三个类加载器,它们是为您提供的,并且在程序的生命周期中存在,您永远不需要考虑它们。
但是,如果你有一个像Java EE或OSGi这样的容器,它们可以在每个应用程序或每个模块中加载它自己的类加载器,允许它们即时安装,升级或删除(无需重新启动JVM)