垃圾回收
孤独剑客 2008-11-04 03:00:08 朋友们 我学习java的时间还不长,能不能告诉我垃圾回收是怎么样具体实施的啊
谢谢大家啊
package ThinkingInJava;
class Chair
{
static boolean gcrun=false;
static boolean f=false;
static int created=0;
static int finalized=0;
int i;
Chair()
{
i=++created;
if(created==47)
{
System.out.println("Created 47");
}
}
protected void finalize()
{
if(!gcrun)
{
gcrun=true;
System.out.println("Begining to finalize after"+created+"Chair have been created");
}
if(i==47)
{
System.out.println("Finalizing Chair #47,"+"Setting flag to stop Chair creation");
f=true;
}
finalized++;
if(finalized>=created)
{
System.out.println("All"+finalized+"finalized");
}
}
}
public class Garbage {
public static void main(String[] args)
{
if(args.length==0)
{
System.err.println("Usage:\n"+"java Garbage after");
return;
}
while(!Chair.f)
{
new Chair();
new String("To take up space");
}
System.out.println("After all Chairs have been created:\n"+"total created+"+Chair.created+", total finalized="+Chair.finalized);
if(args[0].equals("before"))
{
System.out.println("gc():");
System.gc();
System.out.println("runFinalization():");
System.runFinalization();
}
System.out.println("bye!");
if(args[0].equals("after"))
{
System.runFinalizersOnExit(true);
}
}
}