Allin Program

强引用、软引用、弱引用、幻象引用

在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象。

不记得在哪儿看到一个很有趣的比喻:

  • 强引用就像大老婆,关系很稳固。
  • 软引用就像二老婆,随时有失宠的可能,但也有扶正的可能。
  • 弱引用就像情人,关系不稳定,可能跟别人跑了。
  • 幻像引用就是梦中情人,只在梦里出现过。

JDK 1.2开始引入了该java.lang.ref包,推荐文章Java Reference Objects,清晰介绍了几个引用类型的概念和作用。

有关reachability的例子,也是reachabilityFence的使用案例:Finalizer being run while class still in use (escape analysis bug)