Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java 弱引用

作者:满身补丁   发布日期:2025-09-11   浏览:13

import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;

public class WeakReferenceExample {
    public static void main(String[] args) {
        // 创建一个包含弱引用的对象列表
        List<WeakReference<MyObject>> weakReferences = new ArrayList<>();

        // 创建一个 MyObject 实例并用弱引用来引用它
        MyObject obj = new MyObject("Weakly referenced object");
        WeakReference<MyObject> weakRef = new WeakReference<>(obj);
        weakReferences.add(weakRef);

        // 释放强引用
        obj = null;

        // 强制进行垃圾回收(注意:这不保证立即回收)
        System.gc();

        // 检查弱引用是否已经被清除
        for (WeakReference<MyObject> ref : weakReferences) {
            if (ref.get() == null) {
                System.out.println("Weak reference has been cleared by GC.");
            } else {
                System.out.println("Weak reference is still active.");
            }
        }
    }
}

class MyObject {
    private String name;

    public MyObject(String name) {
        this.name = name;
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("MyObject is being garbage collected.");
        super.finalize();
    }
}

解释说明:

  1. WeakReference 类WeakReference 是 Java 中的一种引用类型,它不会阻止对象被垃圾回收。当 JVM 进行垃圾回收时,如果发现某个对象只存在弱引用,则会回收该对象。
  2. 创建弱引用:通过 new WeakReference<>(obj) 创建一个弱引用,指向 MyObject 实例。
  3. 释放强引用:将 obj 设置为 null,使得该对象只有弱引用指向它。
  4. 垃圾回收:调用 System.gc() 建议 JVM 进行垃圾回收(但不保证立即执行)。
  5. 检查弱引用状态:通过 ref.get() 检查弱引用是否已经被清除。如果返回 null,表示对象已被垃圾回收。

这段代码展示了如何使用弱引用来管理对象的生命周期,并观察其在垃圾回收过程中的行为。

上一篇:java的for循环

下一篇:java urldecoder

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站