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

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

 

1、强引用(StrongReference)

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

2、软引用(SoftReference)

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

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

3、弱引用(WeakReference)

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

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

4、虚引用(PhantomReference)

  虚引用在内存不足执行gc时不会被回收,但是会入队列。

 在由于其他原因引发内存模型执行gc的时候,虚引用也不会被回收,但是会被放到引用队列。
 只有在所有这样的引用被清除或者自身变得不可访问才会回收所指向的对象。

git传送门:https://github.com/First-Time/FeferenceDemo

相关文章:

  • 2021-04-25
  • 2021-08-07
  • 2022-12-23
  • 2021-07-30
  • 2021-06-25
  • 2021-04-19
猜你喜欢
  • 2021-05-31
  • 2021-09-27
  • 2021-07-19
  • 2022-12-23
  • 2021-10-11
  • 2021-09-16
相关资源
相似解决方案