⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex_5_3_1.java

📁 java思想编程与设计模块
💻 JAVA
字号:
/*
 *文件名:ex_5_3_1.java
 *说  明:垃圾回收机制举例
 */
// Chair类
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) {
      //第一次调用finalize()方法
      gcrun = true;
      System.out.println(
        "在" +
        created + "个Chair对象创建之后开始调用finalize()方法");
    }
    if(i == 47) {
      System.out.println(
        "finalize() #47, " +
        "正在设置创建终止信号");
      f = true;
    }
    finalized++;
    if(finalized >= created)
      System.out.println(
        "所有" + finalized + " 个Chair对象都被清除掉");
  }
}
// 主类
public class ex_5_3_1 {
  public static void main(String[] args) {
    // 如果f没有被设置,则创建Chairs对象和字符串对象
    while(!Chair.f) {
      new Chair();
      new String("To take up space");
    }
    System.out.println(
      "Chair对象被创建结束:\n" +
      "总数为  " + Chair.created +
      ", 调用finalize()次数为 " + Chair.finalized);
      // GC选项
      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!");
  }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -