初学Java,WeakHashMap实现类(三十二)

news/2024/7/4 1:40:07 标签: java, string, import, class, c#
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

WeakHashMap这个类,说真的,我不知道Java为什么弄这么一个集合类出来,反正C#里面找不到类似的实现,不知道它是用在什么场景下的

看它的名字就知道,WeakHashMap的每一个key对象保存了实际对象的弱引用,当系统回收了该key所对应的实际对象之后,WeakHashMap会自动删除该key对应的key-value对

下面做个实验

class="language-class="tags" href="/tags/JAVA.html" title=java>java">class="tags" href="/tags/IMPORT.html" title=import>import class="tags" href="/tags/JAVA.html" title=java>java.util.*;
public class TestWeakHashMap
{
	public static void main(String[] args) 
	{
		WeakHashMap whm = new WeakHashMap();
		//添加三个键值对
		//三个键都是匿名字符串对象(没有其它引用)
		whm.put(new String("语文"),new String("良好"));
        whm.put(new String("数学"),new String("及格"));
		whm.put(new String("英文"),new String("中等"));
		//添加一个键值对
		//该Key是一个系统缓存的字符串对象
		whm.put("class="tags" href="/tags/JAVA.html" title=java>java",new String("中等"));
		//输出whm,将看到四个键值对
		System.out.println(whm);
		//通知系统进行垃圾回收
		System.gc();
		System.runFinalization();
		//通常情况下将只看到一个键值对
		System.out.println(whm);
	}
}

输出:

{英文=中等, class="tags" href="/tags/JAVA.html" title=java>java=中等, 数学=及格, 语文=良好}
{class="tags" href="/tags/JAVA.html" title=java>java=中等}

三个匿名字符串,WeakHashMap只保留了它们的弱引用,而第4个是字符串直接量,系统会保留该对象的强引用


http://www.niftyadmin.cn/n/1411495.html

相关文章

JavaScript专精系列(1)——值类型和引用类型

1、引言 很多人都说,值类型无非就是JavaScript的五种基本数据类型- Undefined、 Null 、Boolean 、 Number、 String。引用类型就无非是Object、 Array。而它们就像你说的如此简单吗? var a 1; a.name mapbar_front;//这个会不会报错? co…

C语言对编程学习的重要性

2019独角兽企业重金招聘Python工程师标准>>> C语言给初学者的学习感觉比较难易把控,特别是莫名其妙的指针错误,更是措手不及。引入N多的库才实现比如图形设计,甚是麻烦。所以很多人“躲过”C语言的学习,直接去学上层语…

JavaScript专精系列(2)——对象、构造、原型、继承

1、引言 最近,研究了一下JavaScript 关于对象的部分。有些东西刷新了我对 Js 的认知,就比如下面的几个问题: 1、如何删除一个对象的属性?所有对象的属性都是可以删除的吗? 2、for in 在遍历对象的过程中&#xff0c…

初学Java,IdentityHashMap实现类(三十三)

IdentityHashMap又是一个我不明白会用在什么场合的类,用法了解一下吧,它是一个特殊的Map实现,它要求 两个key严格相等时才认为两个key相等import java.util.*; public class TestIdentityHashMap {public static void main(String[] args) {…

2 - 建立 Django 博客应用

建立博客应用 我们已经建立了 Django 博客的项目工程,并且成功地运行了它。不过到目前为止这一切都还只是 Django 为我们创建的项目初始内容,Django 不可能为我们初始化生成博客代码,这些功能性代码都得由我们自己编写。 Django 鼓励我们把自…

JavaScript专精系列(3)——关于闭包

1、什么是闭包 闭包,很多人都从概念上来说,个人认为,对于初学者,概念只会让一个简单的问题复杂化! 下面这个示例,大概就是最简单的闭包了! //示例一 function a(){var i 1;return function(…

初学Java,EnumMap实现类(三十四)

从名字上看出来,EnumMap是为枚举类服务的,它的key不能为null,在创建它的时候,必须要指定一个枚举类,如:EnumMap enumMap new EnumMap(Season.class); 下面示范它的用法public enum Season {SPRING,SUMMER,FALL,WINTER…

通过express统计你的请求响应时间

2019独角兽企业重金招聘Python工程师标准>>> koa中间件做这样的事相对简单,express 由于next 是同步的,可能实现没有co方便。 基本思路是:当请求过来得时候,记录一下当前时间t1,然后api响应结束时间是t2, 响…