Java四种引用模式总结

Java对象的引用包括:强引用,软引用,弱引用,虚引用,Java中提供这四种引用类型主要有两个目的:

  • 可以让程序员通过代码的方式决定某些对象的生命周期。
  • 有利于JVM进行垃圾回收。

1、强引用(StrongReference)

  强引用的对象,只要有引用变量指向它们,它们就不会被垃圾回收。如果内存不足,不足够在堆中分配这些内存,那么JVM将抛出OutOfMemory。

2、软引用(SoftReference)

  软引用对象在内存充足时执行gc不会被回收,也不会放到引用队列。

  软引用对象在内存不足时会被自动回收,并放到引用队列中。

3、弱引用(WeakReference)

  弱引用对象在内存充足时执行gc会被回收,也会放到引用队列中。

 弱引用对象在内存不足时会被自动回收,并放到引用队列。

4、虚引用(PhantomReference)

  虚引用在内存不足时不会被回收。

 在由于其他原因引发内存模型执行gc的时候,虚引用也不会被回收,但是会被放到引用队列。

git传送门:https://github.com/First-Time/FeferenceDemo
原文地址:https://www.cnblogs.com/diyishijian/p/13025190.html