我最近一直在玩 Java 中的软、弱和幻像引用类型,并且一直想知道它们是否有任何我没有遇到过的用途。我过去曾将它们用于各种事情,它们总是属于以下类别:
- 使用幻像引用代替终结器 - 我更喜欢这个,因为死对象复活的可能性为 0
- 在 hashmap 中使用弱引用来保存 object=>value 映射,其中仅当对象存在于其他地方时映射才应存在(当需要向库中的对象添加额外信息时很有用,例如其源不能是修改的)
- 使用软引用进行缓存(比弱引用效果更好,因为 JVM 将它们保留更长时间,并且只有在需要时才放手。)
但是,那里只有 3 种用途,我敢说还有很多我从未遇到过的可能有用的东西。欢迎所有建议!