在以下 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后,我得出的结论是,如果存储在字符串文字池中的字符串对象丢失了参考,请不要不计再保留在池中了。如果未引用它们,则它们符合垃圾收集的条件。
这是真的吗?如果是,文字池机制如何在没有任何引用的情况下处理字符串?
编辑:该问题假定 没有编译器优化 正在完成。