weakrefrence
来源:互联网 发布:人人商城 源码 编辑:程序博客网 时间:2024/05/20 21:48
1、java -version:
java 1.6
2、example: 如下面代码
WeakHashMap<String, String> map = new WeakHashMap<String, String>(); map.put(new String("1"), "1"); map.put("2", "2"); String s = new String("3"); map.put(s, "3"); while(map.size() > 0) { try { Thread.sleep(500); } catch(InterruptedException ignored) { } System.out.println("Map Size:" + map); System.gc(); } }
其中1会回收,2由于String的特殊性不会回收,3因为有强引用存在所以也不会回收。
对weakrefrence的作用理解是:对象不能存在强引用,否gc会把对象当成强引用处理。
对weakhashmap的理解是:大神说可以用来消除过期对象的,肯定是有道理的,只是个人还没理解透彻用在何种场合。如果对象在刚放进weakhashmapde的时候就发生了GC岂不是,这个值就丢了?如果单从上面的例子来看确实是这样的,那岂不是写出的程序很不稳定,其实用weakhashmap的时候是作为强引用hashmap的补充,当强引用范围外,还是想用该对象但是又不想干扰强引用对象的生命周期,就可以用弱引用(weakhashmap)来管理缓存。当强引用回收时,弱引用可以随时被回收!
0 0
- weakrefrence
- codeforces round 360 div2 Remainders Game gcd+模线性方程组
- Trafodion UNLOAD导出数据
- 【数据结构】用回溯法求解迷宫问题
- gradle脚本入门
- Java中静态块,静态成员变量,构造块,普通成员变量,构造方法的执行顺序
- weakrefrence
- 跨节点走IB网络任务报错
- 父类子类指针相互转换问题
- file_put_contents的用法
- CSS3 Gradient按钮demo
- 【JqGrid】JqGrid前端分页+排序+查询条件
- MYSQL学习心得(4) --SQL语句执行顺序
- python+flask
- Git SSH Key 生成步骤