首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

下面有段代码不明白,请问一下

2012-01-09 
下面有段代码不明白,请教一下classGarbage{intindexstaticintcountGarbage(){count++System.out.printl

下面有段代码不明白,请教一下
class   Garbage
{
int   index;
static   int   count;
Garbage()
{
count++;
System.out.println( "object   "+count+ "   construct ");
setID(count);
}

void   setID(int   id)
{
index=id;
}

protected   void   finalize()
{
System.out.println( "object   "+index+ "   is   reclaimed ");
}

public   static   void   main(String[]   args)
{
new   Garbage();
new   Garbage();
new   Garbage();
new   Garbage();
System.gc();
}
}


当程序执行的时候结果如下:

object   1   construct
object   2   construct
object   3   construct
object   4   construct
object   4   is   reclaimed
object   3   is   reclaimed
object   2   is   reclaimed
object   1   is   reclaimed

但我认为结果应该是:

object   1   construct
object   2   construct
object   3   construct
object   4   construct
object   4   is   reclaimed
object   4   is   reclaimed
object   4   is   reclaimed
object   4   is   reclaimed

index的值为什么会减少呢???不明白,请指教....

[解决办法]
晕,index又不是static变量,四个不同的Garbage实例里面的index都不一样的啊
[解决办法]
void setID(int id)
{
index=id;
}

这句index把每个ID都记录了下来

热点排行