【发布时间】:2013-12-19 08:28:37
【问题描述】:
考虑以下场景: 您有一个代表某种数据提供者的单例类。 这个单例类分配了大量的内存,你希望它在没有人使用他的时候释放它分配的内存。 流程:
- A 类调用 getInstance 并使用单例(这是第一次调用 getInstance 并且单例类分配了巨大的内存块)
- B 类调用 getInstance 并使用单例
- A 类和 B 类“死亡”(现在没有人使用单例)
- 程序仍在运行,但未释放单例的内存。
您如何建议实现在第 3 阶段(A 类和 B 类“死”)将释放内存的单例(我知道 java 使用垃圾收集但仍然可以说我想要以下内存 = null)。
PS 我不想在停止使用单例时强制每个使用单例调用的类在单例上释放。我希望单身人士自己处理“释放”内存。
【问题讨论】:
标签: java memory-management garbage-collection singleton