java - Java Setter 中的 GC

标签 java garbage-collection setter

在将新对象分配给字段的 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/

相关文章:

java - 如何解决 jms 中无效的连接参数?

PHP 生成器 - 垃圾收集

python - 调试 Python fatal error : GC Object already Tracked

java - Java 垃圾收集器的行为是随时间演变还是受到 JIT 的影响?

c# - 无副作用二传手的方法

java - 我应该使用哪个 Java API 来实现支持 OCSP 的证书验证?

java - 在数据源中创建不需要的空表

java - resizeToFitText() 导致带有非拉丁字符的文本溢出文本框

java - 在 java 中,如何将 scala setter 方法 'myvar_$eq(myval)' 别名为更令人愉悦的东西?

.net - Setter.Value 不是 ContentProperty 是否有充分的理由?