weakhashmap和hashmap的区别
作者&投稿:孔进 (若有异议请与网页底部的电邮联系)
map是一个表达键-值映射关系集的接口。
weakhashmap是 AbstractMap的子类
AbstractMap继承自Object
weakhashmap自动释放无调用的键值。
map是一个表达键-值映射关系集的接口。
weakhashmap是 AbstractMap的子类
AbstractMap继承自Object
weakhashmap自动释放无调用的键值。
1.HashMap是基于Key-Value的散列表(JDK7:数组+链表,JDK8:数组+链表+红黑树),采用拉链法实现的。一般用于单线程当中,非线程安全,HashMap的键是"强键"。
2.继承于抽象类AbstractMap,并且实现Map接口。遍历时,取得的数据完全是随机的。
3.默认容量大小是16,加载因子是0.75。
4.最多只允许一条key为Null,允许多条value为Null。
5.HashMap实现了Cloneable和Serializable接口,而WeakHashMap没有。
1).HashMap实现Cloneable,说明它能通过clone()克隆自己。
2).HashMap实现Serializable,说明它支持序列化,能通过序列化去传输。
6.添加、删除操作时间复杂度都是O(1)。
二.weakHashMap
1.weakHashMap是基于Key-Value的散列表(数组+链表),采用拉链法实现的。一般用于单线程当中,非线程安全,weakHashMap中的键是"弱键"。
备注:当"弱键"被GC会收时,它对应的键值也会从weakHashMap中删除。
2.继承于抽象类AbstractMap,并且实现Map接口。
3.默认容量大小是16,加载因子是0.75。
4.最多只允许一条key为Null,允许多条value为Null。
謇岚卫算: map是一个表达键-值映射关系集的接口. weakhashmap是 AbstractMap的子类AbstractMap继承自Object weakhashmap自动释放无调用的键值.
宁国市17238946494: java容器问题 - ?
謇岚卫算: 执行JAVA的应用程序容器(Container)容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是 XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后...
宁国市17238946494: hashTable 和 hashMap 作缓存,实现的两种单例的区别 - ?
謇岚卫算: Hashtable和HashMap的区别:1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的.即是说,在多线程应用程序中,不用专门的操作就安全地可以...
宁国市17238946494: Java中弱引用和软引用的区别以及虚引用和强引用介绍 - ?
謇岚卫算: Java中弱引用VS软引用 Java中有如下四种类型的引用:1.强引用(Strong Reference)2.弱引用(WeakReference)3.软引用(SoftReference)4.虚引用(PhantomReference) 强引用是我们在编程过程中使用的最简单的引用,如代码String s=...
宁国市17238946494: java中几种Map在什么情况下使用,并简单介绍原因及原理 - ?
謇岚卫算: 一、Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复.所以通过指定的key就可以取出对应的value.Map接口定义了如下常用的方法:1、void clear():删除Map中...
宁国市17238946494: JAVA中的容器在平时用得到不? - ?
謇岚卫算: 用的非常多,不知道你这个容器说的是servlet容器还是结构容器.数据结构用的多的主要是list和map servlet容器tomcat、jetty、weblogic、websphere什么的,一般做调试开发用tomcat、jetty就行
宁国市17238946494: java中虚引用是怎么回事啊? - ?
謇岚卫算: 虚引用可以用来做一些精细的内存控制操作.你声明虚引用的时候是要传入一个queue的.当你的虚引用所引用的对象已经执行完finalize函数的时候,就会把对象加到queue里面.你可以通过判断queue里面是不是有对象来判断你的对象是不是要...
宁国市17238946494: java中什么是强引用,弱引用和软引用 - ?
謇岚卫算: 我自己也复习下概念. 强引用:就是普通引用.比如 A o1=new A(); A o2=o1; 强引用只有当所有对这个对象的所有引用(o1,o2)失效后,new A()的内存才会被回收.残影引用、弱引用、软引用都用来引用随时可能被回收的对象.类似o1,o2即使未失效也会回收. 区别是被回收器回收的激烈程度,由强到弱.残影引用是对象已经finalize或者执行完析构函数,只等内存马上回收了,最容易被回收.非常接近回收时机,就像残影会随物体消失而消失,故名. 弱引用的对象是在正常情况下,回收器遇到就回收,是被积极回收的对象. 软引用是仅在内存不够时才回收,属于消极回收.
宁国市17238946494: Java集合框架的操作的方法有哪些?怎么用??
謇岚卫算: 浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes).集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题. 1 ...
宁国市17238946494: JAVA实现如何比较两个文档之间的异同点 - ?
謇岚卫算: 楼上回答驴唇不对马嘴.这个文件比较功能,我做过比较txt简单文本文件的.office文件没比过,说下想法,希望能对你有帮助 打开要读取的两份文件,依次读取A所有行数,将每一行的数据以字符串的形式存储在一个字符串数组里,假如是 StringA[] ,同时也一样处理 B文件 分别从开始遍历两个 字符串数组,比较 相似(相同) 字符百分比.当然有时候可能A文件第10行是一个空行,但是其下面的所有数据都和B文件一样,所以这个遍历对比不是门当户对的 行行相比,而是 一次遍历多对多的比较(但是仍要考虑顺序,比如A第10行和B第15行相同,但是A第12行又和B第10行相同,那么这一个范围段都是不匹配片断),找出相似度最高的.希望能对你有帮助吧