java2开始,引用被分4个类型,我们一般使用到强引用,只要没有引用对象时,这个对象将被垃圾回收器回收。
还有其他3种特别的引用,分别是软引用(soft reference)、弱引用(weak refernce)、和幻影引用(phantom refernce),它们的级别依次减弱,并都弱于强引用。
▪️ 软引用:如果一个对象没有强引用只有软引用时,当jvm发现内存不够时,垃圾回收器就会回收这个对象。
▪️ 弱应用:如果一个对象只具有弱引用,在每次回收垃圾时,该对象都会被回收。
▪️ 幻影应用:如果一个对象仅持有幻影引用,那么他就和没有没有引用一样,随时有可能被回收掉。
幻影引用必须和引用队列一起使用。幻影引用可以用来跟踪对象被回收的活动,因为当垃圾回收器准备回收一个对象时,如果发现它还有幻影引用,就会在回收之前,把这个幻影引用加入到引用队列中。