//: Garbage.java
// Demonstration of the garbage
// collector and finalization
package javabasic;
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);
  }
}

解决方案 »

  1.   

    这程序你得输入参数啊,before或after
      

  2.   

    你运行程序的时候要输入参数,用dos命令编译后运行
    javac Garbage。java
    然后运行
    java Garbage before
    或者
    java Garbage after
    就可以了
    最后
     if(args[0].equals("after"))
      System.runFinalizersOnExit(true);
      }
    改为
    if(args[0].equals("after"))
      System.exit(0)
      }
      

  3.   

    编译是
    javac Garbage.java
      

  4.   

    编译时出现下面信息注意:Garbage.java 使用或覆盖了已过时的 API。
    注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
      

  5.   

    @SuppressWarnings(value="deprecation")
    public static void main(String[] args)...
      

  6.   

    编译时还是有问题F:\Java-Programming>javac Garbage.java
    Garbage.java:4: 软件包注释应在文件 package-info.java 中
    @SuppressWarnings(value="deprecation")
    ^
    注意:Garbage.java 使用或覆盖了已过时的 API。
    注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
    1 错误
      

  7.   

    try: javac -Xlint:deprecation Garbage.java