import java.util.Vector; import java.util.Enumeration; public class Final { public static final int N=20; public static final int SLEEP=1000; public static final int MOD_REMEMBERED =3; public static final int MOD_RESURRECTED=4; public static final int MOD_UGLY =10; public static Vector resurrected; public static Vector remembered; public int id; protected void finalize() throws Throwable { System.out.println("\tFinalized object #" + id); if (id % MOD_RESURRECTED == 0) { System.out.println("\tFinalizer #" + id + " resurrected object"); resurrected.add(this); } if (id % MOD_UGLY == 0) { System.out.println("\tFinalizer #" + id + " does an ugly thing!"); System.gc(); } super.finalize(); } public static void main(String args[]) { Enumeration en; Final f = null; resurrected = new Vector(N); remembered = new Vector(N); System.out.println("Creating objects ..."); for (int i=0; i