首页 > 代码库 > Java内存释放——《Thinking in Java》随笔004
Java内存释放——《Thinking in Java》随笔004
1 package cn.skyfffire; 2 3 /** 4 * 5 * @author skyfffire 6 * 7 */ 8 public class Test { 9 static boolean gcrun = false; // GC是垃圾回收器 10 static boolean f = false; // 终止创建对象的条件 11 static int created = 0; // 对象个数计数器 12 static int finalized = 0; // 对象销毁 13 int i; 14 15 Test() { 16 i = ++created; 17 18 if (created == 47) { 19 System.out.println("已经达到47个"); 20 } 21 } 22 23 protected void finalize() { 24 if (!gcrun) { 25 gcrun = true; 26 27 System.out.println(created + "号对象创建完毕"); 28 } 29 30 if (i >= 47) { 31 System.out.println("47以上了"); 32 33 f = true; 34 } 35 36 finalized++; 37 38 if (finalized >= created) { 39 System.out.println("所有对象销毁完毕"); 40 } 41 } 42 } 43 44 class Garbage { 45 public static void main(String[] args) { 46 if (args.length == 0) { 47 System.err.println("请加上参数"); 48 49 return; 50 } 51 52 while (!Test.f) { 53 new Test(); 54 } 55 56 System.out.println(Test.created + "---" + Test.finalized); 57 58 if (args[0].equals("before")) { 59 System.out.println("gc"); 60 System.gc(); 61 System.out.println("runFinalization():"); 62 System.runFinalization(); 63 } 64 // 65 // if (args[0].equals("after")) { 66 //// System.runFinalizersOnExit(false); 67 // } 68 } 69 }
Java内存释放——《Thinking in Java》随笔004
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。