在将新对象分配给字段的 Java setter 方法中,例如:
public class MyClass
{
private String s;
public void mySetter(String newS) {
s = newS;
}
}
在调用 mySetter 之后,之前的 String 是否会被垃圾回收,或者我应该在将其分配给新值之前将其清空吗?
public class MyClass
{
private String s;
public void mySetter(String newS) {
s = null;
s = newS;
}
}
最佳答案
Does the previous String s get garbage collected after mySetter is called or should I null out s before I assign it to the new value?
如果您以前的 String s
没有在任何地方被引用,那么它将被引用。但它不会在 mySetter
被调用后立即发生。无需将其设置为 null
。
关于java - Java Setter 中的 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20526240/