当咱们使用new 这个关键字建立对象时被建立的对象就是强引用,垃圾回收器就不会去回收有强引用的对象,而当内存不足时,jvm不会回收强引用的对象,会报内存空间不足的异常。jvm
当内存足够时,垃圾回收器不会回收它,但若是内存不足了,就会回收软引用对象。对象
只要垃圾回收器检测到这样的引用,就会当即回收掉该引用对象,无论内存是否足够。队列
若是一个对象仅持有虚引用,那么它就和没有任何引用同样,在任什么时候候均可能被垃圾回收器回收。 虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,若是发现它还有虚引用,就会在回收对象的内存以前,把这个虚引用加入到与之 关联的引用队列中。内存