一段关于gc(), runFinalization(), finalize()的代码
暂时没有弄得这段代码,mark一下。
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"); } } public void finalize(){ if(!gcrun){ gcrun = true; System.out.println("Beginning to finalize after" + created + "Chairs 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){ 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.length > 0){ if(args[0].equals("gc") || args[0].equals("all")){ System.out.println("gc():"); System.gc(); } if(args[0].equals("finalize") || args[0].equals("all")){ System.out.println("runFinalization():"); System.runFinalization(); } } System.out.println("bye!"); } }
posted on 2013-05-20 18:41 ZenLearner 阅读(144) 评论(0) 收藏 举报
浙公网安备 33010602011771号