3 java static garbage-collection
我对包含静态成员的类实例的Java垃圾收集感到有点困惑:
有些帖子说不会收集含有静态参考文献的类型,其他人则表示会收集.
我需要一个类实例(比如AA类)来共享对另一个类型的引用(它是一个SQL数据源):当第一次访问AA静态类成员时创建DS,而AA实例使用此内部的共享DS他们获得连接的方法.问题是:
在我看来,静态DS不应该被垃圾收集,因为它的类成员不是实例成员,而应该收集AA实例.无论如何,我想得到更有经验的java程序员的意见.
静态引用不会阻止AA实例被垃圾回收.
如果静态数据源不再被引用,则它将仅被垃圾收集.例如,在设置AA.DS = null之后,可以收集原始数据源.删除对所有AA实例的引用将无济于事,因为静态DS引用仍然有效.
这取决于你如何编码.这在设计上不是线程安全的.
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |