Java容器-引用分类与部分Map用法
2017-03-18 18:49
656 查看
目录
1、引用分类2、了解WeakHashMap、IdentityHashMap、EnumMap
3、同步控制与只读设置
代码实现
1、引用分类(面试)强引用(StrongReference):引用指向对象,gc运行时,不回收。
弱引用(SoftReference):gc运行时可能回收(当jvm内存不足时)。
软引用(WeakReference):当gc运行时,对象回收。
虚引用(phantomReference):类似于无引用,主要跟踪对象被回收的对象,不能单独使用,要与ReferenceQueue联合使用
目的:避免对象长期驻留在内存中,解决垃圾回收机制时机问题。
2、WeakHashMap(键若引用,回收后自动删除key-value对象)
public static void main(String [] args){ //结果:map的size为2,new String()为软对象被回收 WeakHashMap weakHashMap=new WeakHashMap(); //“key1”、“key2”存在于常量池为强对象不会被回收 weakHashMap.put("key1","hello"); weakHashMap.put("key2","hello2"); weakHashMap.put(new String("key3"),"hello3"); System.gc(); System.runFinalization(); System.out.println(weakHashMap.size()); }
3、同步控制与只读操作
(1)同步控制
因为容器中有一些是线程安全,有一些是线程不安全,那么怎么把线程不安全的容器也调整成线程安全呢?
如:Hashtale(安全)-HashMap(不安全) ArryList-LinkedList(不安全)-Vector(安全)
(2)只读操作
1)空的不可变的集合
2)一个元素不可变的集合
3)不可变容器
相关文章推荐
- JAVA hashmap的用法 2009-04-14 16:04546233guo | 分类:JAVA相关 | 浏览25411次 1.加入元素 2.遍历这个map 3.移除元素
- java 容器集合类的区别用法(Vector ArrayList Map)
- Java容器map的用法
- 【Java之容器】1.Map基本用法
- Java开发中的容器概念、分类与用法深入详解
- java中map集合的用法
- Java中map的学习(说明一下java中map、迭代器Iterator的用法)
- JAVA的容器---List,Map,Set
- JAVA,List,Map,Set,容器
- [摘]JAVA的容器---List Map Set
- JAVA,List,Map,Set,容器
- Java中集合容器类List和Set的用法
- JAVA的容器---List,Map,Set
- Map容器的用法(STL)
- JAVA的容器---List,Map,Set
- JAVA的容器---List,Map,Set
- C++中的关联容器map用法
- JAVA的容器---List,Map,Set
- JAVA的容器---List,Map,Set
- JAVA的容器---List,Map,Set