Java面试要点60 - Java WeakHashMap:弱引用键的实现

在这里插入图片描述


一、引言

WeakHashMap是Java集合框架中一个特殊的Map实现,它使用弱引用来保存键,这意味着当键对象不再被其他地方引用时,相应的键值对会被自动从Map中移除。这种特性使其特别适合实现缓存等场景。

二、弱引用基础

在Java中,弱引用是比软引用更弱的引用类型。当一个对象只有弱引用指向它时,在下一次垃圾回收时就会被回收。WeakHashMap正是利用这一特性来实现其独特的功能。

public class WeakReferenceDemo {
   
   
    public static void main(String[] args) throws InterruptedException {
   
   
        // 创建一个强引用对象
        String strongRef = new String("Strong Reference");
        
        // 创建一个弱引用
        WeakReference<String> weakRef = 
            new WeakReference<>(new String("Weak Reference"));
        
        System.out.println("初始状态:");
        System.out.println("Strong Reference: " + strongRef);
        System.out.println("Weak Reference: " + weakRef.get());
        
        // 触发垃圾回收
        System.gc();
        Thread.sleep(100);  // 等待GC完成
        
        System.out.println("\n垃圾回收后:");
        System.out.println("Strong Reference: " + strongRef);
        System.out.println("Weak Reference: " + weakRef.get());
    }
}

三、WeakHashMap的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值