[@饭娱咖啡][¥20]我想知道 Java 关于引用那一块的知识
引用类型
引用对象是否可被GC
GC时机
备注
StrongReference
否
默认的引用方式
SoftReference
是
内存不足
在未GC情况下,仍然可使用
WeakReference
是
GC扫描阶段
相比Soft,更容易被回收掉
PhantomReference
是
任何时间
强引用也就是我们默认new出对象的引用方式,当对象无强引用而存在弱引用的时候,是可以被回收的,区别主要是在于回收的时段。
效果方面主要是通过Reference的get方法来判断是否被回收。
弱引用一方面在内存cache方面,当内存不足时再回收,否则内存空间允许的情况下可以继续作为内存cache。另外一方面对于Netty内存池中对内存泄漏的检测也应用到的了弱引用与ReferenceQueue的机制,有兴趣的话可以详细了解一下。
赞0
踩0