加入收藏 收藏网站 设为首页 设为首页
招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 计算机等级考试 - 考试辅导 - 正文

 
Java对象的强引用、软引用、弱引用和虚引用
来源:fjzsksw.com 2009-12-15 编辑:yangmeiling 【字体:小 大】
Java对象的强引用、软引用、弱引用和虚引用

public class MapCache {

  public static void main(String[] args) throws Exception{

  int size = 1000;

  // 或者从命令行获得size的大小

  if(args.length > 0)size = Integer.parseInt(args[0]);

  Key[] keys = new Key[size]; //存放键对象的强引用

  WeakHashMap<Key,Value> whm = new WeakHashMap<Key,Value>();

  for(int i = 0; i < size; i++) {

  Key k = new Key(Integer.toString(i));

  Value v = new Value(Integer.toString(i));

  if(i % 3 == 0) keys[i] = k; //使Key对象持有强引用

  whm.put(k, v); //使Key对象持有弱引用

  }

  //催促垃圾回收器工作

  System.gc();

  //把CPU让给垃圾回收器线程

  Thread.sleep(8000);

  }

  }

  以上程序的部分打印结果如下:

  Finalizing Key 998

  Finalizing Key 997

  Finalizing Key 995

  Finalizing Key 994

  Finalizing Key 992

  Finalizing Key 991

  Finalizing Key 989

  Finalizing Key 988

  Finalizing Key 986

  Finalizing Key 985

  Finalizing Key 983

  从打印结果可以看出,当执行System.gc()方法后,垃圾回收器只会回收那些仅仅持有弱引用的Key对象。id可以被3整数的Key对象持有强引用,因此不会被回收。



 
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
最新文章
热门文章

报名考试
全国 | 黑龙江 | 吉林 | 辽宁 | 内蒙古
青海 | 宁夏 | 甘肃 | 新疆 | 陕西
西藏 | 北京 | 天津 | 河北 | 山东
江苏 | 安徽 | 河南 | 上海 | 浙江
福建 | 广东 | 山西 | 湖南 | 湖北
江西 | 广西 | 海南 | 云南 | 贵州
四川 | 重庆
分省高校计算机考试
黑龙江 | 吉林 | 辽宁 | 内蒙古 | 河北
北京 | 天津 | 新疆 | 甘肃 | 宁夏
青海 | 陕西 | 山西 | 河南 | 山东
江苏 | 安徽 | 浙江 | 福建 | 广东
海南 | 广西 | 江西 | 湖北 | 湖南
四川 | 上海 | 重庆 | 贵州 | 云南
西藏
成绩查询
报考指南
试题答案
模拟试题
考试辅导
计算机一级 | 计算机二级 | 计算机三级 | 计算机四级
经验交流
高校计算机