public class KonstruktorTest { // Konstruktor public KonstruktorTest() { System.out.println("Konstruktor wurde aufgerufen!"); } // Destruktor protected void finalize() { System.out.println("Destruktor wurde aufgerufen!"); } public static void main(String[] args) { KonstruktorTest t1 = new KonstruktorTest(); // Hier sollte der Destruktor aufgerufen werden, // da das ursprüngliche Objekt dereferenziert wird: t1 = new KonstruktorTest(); // Normalerweise hätten wir den Aufruf des Destruktors // sehen müssen, da keine Variable mehr auf // das ursprüngliche Objekt zeigt. // Der Destruktor wird aber nur "gelegentlich" // von der Garbage Collection aktiviert! System.gc(); // Erzwingen! // Hier auch: t1 = new KonstruktorTest(); // Hier auch: t1 = null; } }