WeakHashMap类

WeakHashMap类一代码示例importjava.util.*;publicclassWeakHashMapTest{ publicstaticvoidmain(String[]args) { WeakHashMapwhm=newWeakHashMap(); //HashMapwhm=newHashMap(); //将WeakHashM…

大家好,又见面了,我是你们的朋友全栈君。

一 代码示例

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对象。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138260.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 神经网络的若干关键基础理论研究_DLA深度神经网络

    神经网络的若干关键基础理论研究_DLA深度神经网络这是一篇关于神经网络算法设计的几个基本问题的理论分析的专题文章,涉及到比较多的原理推导。文章的主体来自IanGoodfellow的《DeepLearning》;AndrewNg在Coursera的《MachineLearning》课程;周志华老师的《机器学习》MichaelNielson的线上书籍:曹振华老师的《随机数学基础》。本文涉及到的概念和理论,尽可能参考自维基百科,保证所有观点的严密和权威。

  • 图数据的自监督学习介绍

    图数据的自监督学习介绍深度学习在解决许多复杂的机器学习问题方面一直是一个有趣的课题,特别是最近在图数据方面。然而,大多数的解决方案要么是监督或半监督,高度依赖于数据中的标签,导致过拟合和整体鲁棒性较弱。自监督学习(Self-SupervisedLearning,SSL)是一种很有前途的解决方案,它从无标记数据中挖掘有用的信息,使其成为图数据领域中一个非常有趣的选择。为什么自监督学习更适合图形数据?SSL有助于理解图形数据中存在的结构和属性信息,使用标记数据时可能会忽略这些信息对于现实世界的数据,获取带标签的图形数据非常

  • mvnw_进入pod命令

    mvnw_进入pod命令我们使用Maven时,基本上只会用到mvn这一个命令。mvnw是MavenWrapper的缩写。因为我们安装Maven时,默认情况下,系统所有项目都会使用全局安装的这个Maven版本。但是,对于某些项目来说,它可能必须使用某个特定的Maven版本,这个时候,就可以使用MavenWrapper,它可以负责给这个特定的项目安装指定版本的Maven,而其他项目不受影响。该工具可以在大型、多人协作的项目统一Maven的版本,避免因为不一致造成意想不到的bug简单地说,MavenWrapper就是给一个

    2022年10月23日
  • 机器学习_正规方程(最小二乘法)的推导

    机器学习_正规方程(最小二乘法)的推导机器学习中正规方程的推导,一共两种推导方式

  • vue-router传递参数的几种方式

    vue-router传递参数的几种方式vue-router传递参数分为两大类编程式的导航router.push声明式的导航<router-link>编程式的导航router.push编程式导航传递参数有两种类型:字符串、对象。字符串字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数:this.$router.push("home");对象想要传递参数主要就是以对象的方式来写,分为两种方…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号