java – 垃圾收集器是否会删除静态最终对象?
发布时间:2020-12-15 03:02:45 所属栏目:Java 来源:网络整理
导读:我以前在 Java中的服务中使用了自定义对象,它总是在后端运行,我有时会收到带有跟踪的Bug报告,这些跟踪显示NULL_POINTER_EXCEPTION,因为垃圾收集器已经破坏了对象.由于我拥有所有高端设备,我无法测试这是否会导致静态最终对象被垃圾收集器破坏? 解决方法 Doe
我以前在
Java中的服务中使用了自定义对象,它总是在后端运行,我有时会收到带有跟踪的Bug报告,这些跟踪显示NULL_POINTER_EXCEPTION,因为垃圾收集器已经破坏了对象.由于我拥有所有高端设备,我无法测试这是否会导致静态最终对象被垃圾收集器破坏?
解决方法
我可以想到三种可能发生这种情况的情况: >使用静态加载类的类加载器变得无法访问.但这只能在你的代码达到一个没有任何东西可能注意到该对象是GC的点之后发生! 请注意,由于您(显然)正在观察GC’d对象的效果,因此它不能是类加载器为GC的直接结果.必须要做的其他事情才能使类加载器和最终静态成为GC’…如果这就是实际发生的事情. 实际上,我怀疑你的问题与GC无关.相反,我怀疑由于未记录的未经检查的异常,您的服务正在死亡.除“main”之外的线程上未捕获的异常的默认行为是静默忽略它们. 我建议您检查您的服务线程是否正在记录所有异常,可以使用run()方法中的catch,也可以使用“未捕获的异常处理程序”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |