package ar.com.javacuriosities.references.util; public class Foo { private String data; public Foo() { } public Foo(String data) { this.data = data; } public String getData() { return data; } public void setData(String data) { this.data = data; } /* * El método finalize es invocado por el GC cuando determina que no hay mas referencias al objeto. * * - El método finalize será solo invocado una vez * - La JVM no asegura que hilo llamara al método * - Se puede usar este método para revivir el objeto * - Las excepciones no capturadas son ignoradas */ @Override protected void finalize() throws Throwable { System.out.println("Foo finalize() method"); super.finalize(); } @Override public String toString() { return "This is Foo Object"; } }