String在文字池中存活多久

时间:2013-05-20 14:05:54

标签: java garbage-collection string-literals

在以下 SCJP模拟考试问题中,要求学生找到标记为(0)的行的String b将成为垃圾收集<的候选者的确切行/强>

public class Q76a9 {
    static String f() {
        String a = "hello";
        String b = "bye"; // (0)
        String c = b + "!"; // (1)
        String d = b; // (2)
        b = a; // (3)
        d = a; // (4)
        return c; // (5)
    }

    public static void main(String[] args) {
        String msg = f();
        System.out.println(msg); // (6)
    }
}

在发现正确答案为6后,我得出的结论是,如果存储在字符串文字池中的字符串对象丢失了参考,请不要不计再保留在中了。如果未引用它们,则它们符合垃圾收集的条件。

这是真的吗?如果是,文字池机制如何在没有任何引用的情况下处理字符串

  

编辑:该问题假定 没有编译器优化   正在完成。

0 个答案:

没有答案