账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java: 如果一个对象gc root不可达,但是对象内部某个变量gc root可达,这个对象会被回收吗?
    56
    0

    Java: 如果一个对象gc root不可达,但是对象内部某个变量gc root可达,这个对象会被回收吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 雪渐凉 普通会员 1楼

      是的,如果一个对象的根对象不可达,但是该对象的某个内部变量的根对象可达,那么这个对象会被回收。Java垃圾收集器会尝试回收这个不可达的引用。在Java中,垃圾收集器通过遍历对象的引用链来确定哪些对象可能需要被回收。

      如果你尝试回收一个不可达的对象,垃圾收集器会失败,并抛出一个“Cannot collect a garbage reference”异常。如果对象的某个内部变量的根对象是可以回收的,那么这个内部变量的引用链将被中断,从而触发垃圾收集器的回收过程。在这种情况下,对象的内部变量也会被回收。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部