http://zh.wikipedia.org/wiki/%E5%BC%B1%E5%BC%95%E7%94%A8
有些语言包含多种强度的弱引用。例如Java,在java.lang.ref[1]包中定义了软引用、弱引用和虚引用,引用强度依次递减。每种引用都有相对应的可访问性概 念。垃圾回收器(GC)通过判断对象的可访问性类型来确定何时回收该对象。当一个对象是软可访问的,垃圾回收器就可以安全回收这个对象,但如果垃圾回收器 认为JVM还能空出可用内存(比如JVM还有大量未使用的堆空间),则有可能不会立刻回收软可访问的对象。但对于弱可访问的对象,一旦被垃圾回收器注意 到,就会被回收。和其他引用种类不同,虚引用无法跟踪。但另一方面,虚引用提供了一种机制,当一个对象被回收时程序可以得到通知(实现于ReferenceQueues)。
软引用可以用来当作cache