校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > 垃圾回收算法
题目

Java中的强引用,软引用,弱引用,虚引用有什么用

解答

强引用(Strong Reference):
Object obj =new Object();
抛出OutOfMemoryError终止程序也不会回收具有强引用的对象;通过将对象设置为null来弱化引用,使其被回收。
软引用(Soft Reference):
String str =new String("ABC");//强引用
SoftReference softRef =new SoftReference(str);
对象处在有用但是非必须的状态,只有当内存空间不足时,GC才会回收该对象的内存,可以实现高速缓存。
弱引用(Weak Reference ):
String str =new String("ABC");//强引用
WeakReference softRef =new WeakReference(str);
非必须的对象,比软引用更弱一些;GC时会被回收;回收的概率也不大,因为GC线程优先级比较低;适用于引用偶尔被使用且不影响垃圾收集的对象。
虚引用(PhantomReference ):
String str =new String("ABC");//强引用
ReferenceQueue queue =new ReferenceQueue<>();
PhantomReference ref =new PhantomReference<>(str,queue);
不会决定对象的生命周期;任何时候都可能被垃圾收集器回收;跟踪对象被垃圾收集器回收的活动,起哨兵作用;必须和引用队列ReferenceQueue联合使用.

C 0条回复 评论

帖子还没人回复快来抢沙发