使用Class键的弱哈希映射

Ale*_*niy 5 java class map

是否值得使用Class作为缓存的弱哈希映射中的键(WeakHashMap)?众所周知,类对象是在程序启动时创建的,在完成时会被销毁.那么,有没有可能做到这一点,或者我对此有一些误解?

Pet*_*rey 6

在类加载器加载时加载一个Class.如果卸载了ClassLoader,那么它的类也是如此.在可以清除所有类之前,不能卸载ClassLoader,因此如果您想要卸载类加载器,则使用Weak的Cla​​sses集合是一个非常好的主意.

在一个简单的Java Se程序中,您可能有两个或三个类加载器,它们是为您提供的,并且在程序的生命周期中存在,您永远不需要考虑它们.

但是,如果您有像Java EE或OSGi这样的容器,这些容器可以将每个应用程序或每个模块加载到自己的类加载器中,从而允许它们即时安装,升级或删除(无需重新启动JVM)