WeakHashMap

/**
 * Date: 2021/5/21 15:26
 */
public class WeakHashMapDemo {

    public static void main(String[] args) {
        myHashMap();
        System.out.println("=======================");
        myWeakHashMap();
    }

    private static void myHashMap() {
        HashMap<Integer, String> map = new HashMap<>();
        Integer key = new Integer(1);   // 强引用
        String value = "HashMap";

        map.put(key,value);
        System.out.println(map);

        key = null;  // 引用Integer 在map中是以Node结点存储的,这里key置空与map无关
        System.out.println(map);

        System.gc();
        System.out.println(map);
    }

    private static void myWeakHashMap() {
        // 弱引用 GC 会被回收,只要key 为null ,所指向的value就会被回收
        WeakHashMap<Integer, String> map = new WeakHashMap<>();
        Integer key = new Integer(2);   // 强引用
        String value = "WeakHashMap";

        map.put(key,value);
        System.out.println(map);

        key = null;
        System.out.println(map);

        System.gc();
        System.out.println(map);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容