假设我有一个包含字符串的对象,如下所示:

class SomeObject  {
   private final String s;
   private final int i;

   SomeObject(String s, int i) {
      this.s = s;
      this.i = i;
   }

   String getString() {
      return s;
   }
}


因此,例如,如果我仅使用不带SomeObject的引用,例如,我用于构建另一个对象,并且不需要i和任何其他可能的字段,它将被垃圾回收吗?

编辑:对不起,我很不清楚。事情是说我有一个名为someObject的SomeObject实例,并且如果我使用getString()方法(即someObject.getString())让s引用转义并使用返回的引用来构建其他对象,例如不是SomeObject实例,someObject是否可用于垃圾回收?

最佳答案

我想您指的是s?是的,SomeObject实例将免费进行垃圾回收。 String不保留对其源自的SomeObject的引用。

关于java - 如果我让字符串引用转义,这将防止包含对象被垃圾回收吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12231040/

10-10 14:02
查看更多