`
cakin24
  • 浏览: 1398256 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

WeakHashMap类

    博客分类:
  • java
阅读更多

一 代码示例

import java.util.*;

public class WeakHashMapTest
{
	public static void main(String[] args)
	{
		WeakHashMap whm = new WeakHashMap();
		//HashMap whm = new HashMap();
		// 将WeakHashMap中添加三个key-value对,
		// 三个key都是匿名字符串对象(没有其他引用)
		whm.put(new String("英语") , new String("优秀"));
		whm.put(new String("数学") , new String("及格"));
		whm.put(new String("英文") , new String("中等"));
		//将 WeakHashMap中添加一个key-value对,
		// 该key是一个系统缓存的字符串对象。
		whm.put("java" , new String("中等"));    // ①
		// 输出whm对象,将看到4个key-value对。
		System.out.println(whm);
		// 通知系统立即进行垃圾回收
		System.gc();
		System.runFinalization();
		// 通常情况下,将只看到一个key-value对。
		System.out.println(whm);
	}
}

 

二 运行结果

{英文=中等, java=中等, 数学=及格, 英语=优秀}
{java=中等}
当whm用HashMap创建时,结果如下。
{java=中等, 英文=中等, 数学=及格, 英语=优秀}
{java=中等, 英文=中等, 数学=及格, 英语=优秀}
三 结果分析
如果WeakHashMap对象的key所引用的对象没有被其他强引用变量所引用,则这些key所引用的对象可能被垃圾回收,WeakHashMap也可能自动删除这些key所对应的key-value对象。
分享到:
评论

相关推荐

    集合类及其分支

    - **WeakHashMap类** WeakHashMap是一种特殊的哈希表,它使用弱引用作为键,当键不再被引用时,即使没有显式地从集合中移除,也会自动清理。 **Map接口** Map接口存储键值对,不直接继承自Collection接口。常见的...

    Java 基础核心总结 +经典算法大全.rar

    Hashtable 类IdentityHashMap 类WeakHashMap 类 Collections 类集合实现类特征图 泛形 泛型的使用 用泛型表示类 用泛型表示接口泛型方法 泛型通配符 反射 Class 类Field 类Method 类ClassLoader 类 枚举 枚举特性 ...

    比较Vector、ArrayList和hashtable hashmap

    WeakHashMap 类 WeakHashMap 是 HashMap 的一个变种,它使用弱引用作为键。这意味着如果键不再被任何对象引用,那么即使在 WeakHashMap 中,这个键也会被垃圾收集器回收。这种方式可以防止内存泄漏,但也可能导致...

    Java 基础核心总结.md

    - **WeakHashMap类**:使用弱引用作为键的`Map`。 - **Collections类**:提供了一些静态方法来操作集合。 - **集合实现类特征图**:展示了不同集合实现之间的关系和特性。 #### 泛型 - **泛型的使用**:泛型允许...

    java集合框架 解析

    java集合框架 3.6. LinkedHashSet类 4. Map接口 4.1. Map.Entry接口 4.2. SortedMap接口 4.3. AbstractMap抽象类 4.4. HashMap类和TreeMap类 4.4.1. HashMap类 ...4.6. WeakHashMap类 4.6. IdentityHashMap类

    线程死锁CPU过高,请求原因分析

    解决这类问题的方法: 1. **合理设计资源获取顺序**:避免循环等待,可以规定线程获取资源的固定顺序。 2. **超时和回退策略**:设置线程等待一定时间后自动回退,释放已占有的资源,防止死锁。 3. **使用更细粒度的...

    Java集合详解,详细讲解java的集合类

    Map接口的实现类有Hashtable、HashMap和WeakHashMap。 1. Hashtable:线程安全的Map,不允许null键和null值。其行为与HashMap相似,但它是同步的,适用于多线程环境。 2. HashMap:基于哈希表的Map实现,允许null...

    1216集合类的说明与区别

    常见的Map实现类有Hashtable、HashMap和WeakHashMap。Hashtable与Vector类似,是线程安全的,但不推荐在现代Java中使用,因为它不允许null键和值。HashMap是非同步的,提供快速的查找,插入和删除操作,键和值都可以...

    java 运用映射的相关类(Map)

    除了上述实现类,还有WeakHashMap、IdentityHashMap等特殊用途的Map实现,它们分别处理弱引用和比较对象引用相等的情况。 在实际开发中,选择合适的Map实现类取决于具体需求,如是否需要有序、是否考虑线程安全、...

    类集框架文档UTIL

    5. **Hashtable** 和 **WeakHashMap**: 类似于HashMap,但线程安全,后者弱引用键对象,有助于内存管理。 类集框架还引入了其他实用工具类,如`Arrays`、`Collections`、`BitSet`、`Timer`等,以及用于日期和时间...

    Java集合类层次结构

    WeakHashMap则使用弱引用,当键不再被引用时,键值对会自动移除。 6. Deque接口:Deque(双端队列)接口扩展了Queue,支持在两端进行插入和移除操作。ArrayDeque和LinkedList都可以实现Deque接口。 Java集合类层次...

    JAVA中集合类的总结

    ### JAVA中集合类的总结 #### 为什么使用集合类? 在Java编程中,集合类扮演着极其重要的角色。集合类提供了灵活的数据存储机制,适用于那些数据数量未知或需要灵活访问和管理的情况。与传统的数组相比,集合类...

    Java集合类详解总结

    - `WeakHashMap`:基于弱引用的键,适用于缓存场景,当没有强引用指向键时,键会被垃圾回收器回收。 #### ArrayList与LinkedList对比 - `ArrayList`在随机访问时效率高于`LinkedList`,因为`LinkedList`需要从头...

    java集合类

    最后,Java集合类的设计遵循了一些设计模式,比如工厂模式(Collections类中的静态工厂方法)、装饰器模式(如Collections.unmodifiableList()创建不可修改的列表)以及代理模式(WeakHashMap中的弱引用键)。...

    java集合类详解

    ### Java集合类详解 在Java编程中,集合类(Collections)是处理数据的重要工具,它们提供了灵活且高效的方式来存储、检索以及操作数据。Java集合框架主要包括两大类:`Collection`和`Map`。 #### Collection接口...

    java集合总结.pdf

    Map接口的实现类包括HashMap、TreeMap、WeakHashMap等。 HashMap是Map接口的基于哈希表的实现,提供了所有可选的映射操作,并允许使用null值和null键。 TreeMap是Map接口的基于树形结构的实现,提供了关于键的总体...

    Java期末复习-类集框架

    Java 类集框架是Java编程语言中用于存储和操作对象集合的核心组件。它提供了一系列接口和类,方便开发者处理各种数据结构,如列表、队列、集合、映射等。类集框架的最大父接口是`Collection`,而`Map`接口则是处理...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    - **实现类**: `HashMap`, `HashTable`, `WeakHashMap`等。 **2. HashMap类** - **内部实现**: 使用哈希表实现,提供了高效的键值查找机制。 - **特点**: - 非线程安全:`HashMap`不是线程安全的,如果多个线程...

Global site tag (gtag.js) - Google Analytics