[size=large]看到项目中有这里的代码,大家看下,一个类里面有一个static字段的变量,当new一个对象后,没有被引用,是否会被垃圾回收器回收?
比如,代码如下:[/size][code="java"]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;
}
}[/code]
[code="java"]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,大家看呢?
}
}[/code]
[size=large]这里不讨论System.gc()执不执行的问题,这里主要强调理论上,一个含static字段的对象没有被引用后会不会被垃圾回收!!![/size]