zoukankan      html  css  js  c++  java
  • java 垃圾回收的陷阱~

    //: Garbage.java
    // Demonstration of the garbage collector and finalization
    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("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) {
    		if (args.length == 0) {
    			System.err.println("Usage: \n" + "java Garbage before\n or:\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);
    	}
    } // /:~
    

      

  • 相关阅读:
    Paxos算法简单陈述
    二段式提交和三段式提交
    Guava包学习--Hash
    JedisPool无法获得资源问题
    有料面试题之--Object里面的方法
    Spring常用jar包的功能
    线上日志分析与其他一些脚本
    Flutter-漸變色按鈕
    Flutter-自定義圖標或者選擇框
    Flutter-自定義圖片圖標
  • 原文地址:https://www.cnblogs.com/steady/p/2594486.html
Copyright © 2011-2022 走看看