如何判断对象是否是垃圾?

1 个回答

  • 野狐狸
    慢慢理解世界,慢慢更新自己。
    判断对象是否是垃圾主要有两种方法: 1. **引用计数法**: - 每个对象有一个引用计数器,引用增加时计数器加 1,引用失效时计数器减 1。当计数器为 0 时,表示该对象可以被回收。 - **缺点**:无法解决对象之间的循环引用问题,因此 Java 中通常不使用这种方法。 2. **可达性分析法**: - 以 **GC Roots** 作为起始点,遍历对象的引用关系,向下搜索。如果对象在遍历过程中不可达,则被标记为垃圾。 - **GC Roots** 的来源包括: - 虚拟机栈中引用的对象。 - 本地方法栈中引用的对象。 - 类静态属性引用的对象。 - 常量引用的对象。 可达性分析法是 Java 垃圾回收判断的主要方式。
    发布于 2024-09-04 06:36 •IP属地 湖北
    举报
    评论
    收藏1