Java classLoader困境与罐子锁定

Java classLoader困境与罐子锁定,第1张

Java classLoader困境与罐子锁定

我找到了答案和解决方法。

基于本文和这篇惊人的相关文章,使用它是一个坏习惯,

Class.forName(className, true,classLoader)
因为它使类无限期地保留在内存中。

解决方案是改为使用

classLoader.loadClass(clasName)
,然后在完成后取消引用
classLoader
并使用以下方法调用垃圾收集器:

classLoader = null;System.gc();

希望这对别人有帮助!:)

背景信息:

我的项目很复杂:我们有一台GWT服务器充当另一台服务器的RMI客户端。因此,要创建实例,GWT需要从服务器下载类并加载它们。稍后,GWT会将实例重新发送到服务器,以使用Hibernate将其持久化到数据库中。为了支持热部署,我们选择了动态类加载,用户可以上传一个jar,并通知服务器从中加载类并将其提供给GWT服务器。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5055612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存