java垃圾收集和空引用

Mag*_*gie 2 java garbage-collection scjp

在我为 OCJP 学习时,我遇到了以下问题:

class CardBoard {
           Short story = 200;
           CardBoard go(CardBoard cb) {
                cb = null;
                return cb;
           }
           public static void main(String[] args) {
             CardBoard c1 = new CardBoard();
             CardBoard c2 = new CardBoard();
             CardBoard c3 = c1.go(c2);
             c1 = null;
            // do Stuff 
}}
Run Code Online (Sandbox Code Playgroud)

当达到 //doStuff 时,有多少对象符合 GC 条件?
正确答案是2,意思c1story对象。

当到达行 //doStuff 时,c3 也为空。为什么它也没有资格进行 GC?

ono*_*n15 5

c3 是一个带有空引用的本地句柄,它不指向(并且已经指向)分配的对象。因此,GC 没有任何意义。