看到项目中有这里的代码,大家看下,一个类里面有一个static字段的变量,当new一个对象后,没有被引用,是否会被垃圾回收器回收?
比如,代码如下:
public class Sta {
private static int s = 0;public Sta(int i) { setS(i); } public static int getS() { return s; } public static void setS(int s) { Sta.s = s; }
}
public class StaDriver {public static void main(String[] args) { new Sta(2); System.out.println(Sta.getS()); System.gc(); System.out.println(Sta.getS());//如果被回收,值应该是0,否则为2,大家看呢? }
}
这里不讨论System.gc()执不执行的问题,这里主要强调理论上,一个含static字段的对象没有被引用后会不会被垃圾回收!!!