java的引用类型的详细介绍

时间:2021-09-17 15:56:42

•强引用(FinalReference),在java中,有点像C++的指针,通过引用,可以对堆中的对象进行操作。强引用具备以下特点:

1.强引用可以直接访问目标对象;

2.强引用所指向的对象在任务时候都不会被系统回收;

3.强引用可能导致内存泄露。

•软引用(SoftReference),软引用对象,在响应内存需要时,由垃圾回收器决定是否清除此对象。一个持有软件引用的对象,不会被JVM很快回收,只要有足够的内存,软件引用便可能在内存中存活相当长的时间,软引用对象最常用于实现内存敏感的缓存;

•弱引用(WeakReference),弱引用是一种比较弱的引用类型,在系统GC时,只要发现弱引用,不管系统堆内存是否足够,都会将对象回收;

•虚引用(PhantomReference),虚引用是所有引用最弱的一个,一个持有虚引用的对象,和没有引用几乎是一样的,随时都可能被垃圾回收器回收。