让我们说我有一个片段定义如下:
public class MyFragment extends Fragment {
private static String sample = "";
public static void setSample(String s) {
sample = s;
}
}
对于应用程序的生命周期,样本会收集垃圾(是否存在对MyFragment的任何引用 - 我觉得这不应该重要)?
答案 0 :(得分:4)
MyFragment
的实例数无关紧要。
只要加载sample
的类加载器处于活动状态,MyFragment
变量就会有效地成为GC根目录。
重要的是要注意变量永远不会被垃圾收集 - 对象。
答案 1 :(得分:3)
只要该类不是unloaded,样本变量就不会被垃圾收集。
当且仅当其定义类时,才可以卸载类或接口 如下所述,垃圾收集器可以回收加载器 §12.6。引导加载程序加载的类和接口可能不会 被卸下
答案 2 :(得分:2)
private static String sample
在代码中首次引用时(类加载器加载它)将开始存在,并且将独立于现有的对象引用而保持活动状态。