静态私有变量的Java/Android垃圾收集
假设我有一个片段定义如下:静态私有变量的Java/Android垃圾收集,java,android,garbage-collection,Java,Android,Garbage Collection,假设我有一个片段定义如下: public class MyFragment extends Fragment { private static String sample = ""; public static void setSample(String s) { sample = s; } } 在应用程序的生命周期内,sample是否会被垃圾收集(无论是否存在对MyFragment的任何引用,我认为这不重要)您是对的,MyFragment的实例数不重要 只要加
public class MyFragment extends Fragment {
private static String sample = "";
public static void setSample(String s) {
sample = s;
}
}
在应用程序的生命周期内,sample是否会被垃圾收集(无论是否存在对MyFragment的任何引用,我认为这不重要)您是对的,MyFragment的实例数不重要 只要加载了
MyFragment
的类加载器处于活动状态,那么sample
变量实际上就是GC根
需要注意的是,变量永远不会被垃圾收集—对象是。只要类没有垃圾收集,样本变量就不会被垃圾收集 当且仅当类或接口的定义类 如中所述,垃圾收集器可以回收装载器 §12.6. 引导加载程序加载的类和接口可能不可用 卸下
私有静态字符串示例
将在代码中首次引用它时开始存在(类加载器加载它),并且将保持活动状态,与现有对象引用无关