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);
    	}
    } // /:~
    

      

  • 相关阅读:
    vue中v-slot使用
    Angular服务
    Angular的使用
    Angular介绍
    缓存组件
    mvvm和mvc的区别
    vue项目优化
    windows环境安装和使用curl与ES交互
    Java自定义注解
    ajax异步请求后台数据处理
  • 原文地址:https://www.cnblogs.com/steady/p/2594486.html
Copyright © 2011-2022 走看看