Java中的弱引用机制:内存回收示例

原创 墨蓝 2024-12-04 18:39 128阅读 0赞

在Java中,弱引用(Soft Reference)是一种特殊引用,它不会阻止垃圾收集器对被引用对象的回收。换句话说,即使有弱引用指向一个对象,只要垃圾收集器认为该对象已经无生存价值,就会对其进行回收。

下面是一个简单的弱引用内存回收示例:

  1. // 创建对象,强引用
  2. Object strongRefObj = new Object();
  3. System.out.println("创建强引用对象: " + strongRefObj);
  4. // 创建弱引用
  5. WeakReference weakRef = new WeakReference<>(strongRefObj);
  6. System.out.println("创建弱引用指向强引用对象: " + weakRef);
  7. // 对象生存时间结束,垃圾收集器回收对象
  8. System.gc();
  9. System.out.println("垃圾收集器回收后,弱引用指向的对象状态: " + weakRef.get()); // 通常返回null,表示对象已经被垃圾收集器回收

在这个示例中,我们首先创建了一个强引用对象。然后,我们创建了一个弱引用,它指向那个强引用对象。

当系统调用System.gc()来触发垃圾收集时,如果之前有弱引用指向的对象,那么在垃圾收集后,弱引用将无法获取到指向的对象,即返回null

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,128人围观)

还没有评论,来说两句吧...

相关阅读