最近在看孙鑫老师java视频lesson3上的时候,有一段这样的代码:class Garbage
{
int index;
static int count;
Garbage()
{
  count++;
  System.out.println("0bject" + count + "Construct");
  setID(count);
}
void setID(int id)
{
  index=id;
}
protected void finalize()
    {
  System.out.println("0bject" + index +" is reclaimed");
}
public static void fn()
{
}
public static void main(String[] args)
{
  new Garbage();
  new Garbage();
  new Garbage();
  new Garbage();
  System.gc();
}
}在本机运行的结果是:---------- Run The Program ----------
0bject1Construct
0bject2Construct
0bject3Construct
0bject4Construct
0bject4 is reclaimed
0bject3 is reclaimed
0bject2 is reclaimed
0bject1 is reclaimed输出完成 (耗时: 0 秒) - 正常终止而视频教材的结果是:
0bject1Construct
0bject2Construct
0bject3Construct
0bject4Construct
0bject1 is reclaimed
0bject2is reclaimed
0bject3 is reclaimed
0bject4is reclaimed为什么会出现两种结果,我寻找到了堆内存的管理,但还是不能够解决,希望高人赐教!谢谢!