Académique Documents
Professionnel Documents
Culture Documents
los constructores.
Son
tambin
funciones que no
Los finalizadores son mtodos que vienen a completar la labor del garbage
collector. Un finalizador es un mtodo que se llama automticamente
cuando se va a destruir un objeto (antes de que la memoria sea liberada de
modo automtico por el sistema).
Se utilizan para ciertas operaciones de terminacin distintas de liberar
memoria (por ejemplo: cerrar ficheros, cerrar conexiones de red, liberar
memoria reservada por funciones nativas, etc.).
Hay que tener en cuenta que el garbage collector slo libera la memoria
reservada con new. Si por ejemplo se ha reservado memoria con funciones
nativas en C (por ejemplo, utilizando la funcin malloc()), esta memoria hay
que liberarla explcitamente utilizando el mtodo finalize().
Un finalizador es un mtodo de objeto (no static), sin valor de retorno (void),
sin argumentos y que siempre se llama finalize(). Los finalizadores se llaman
de modo automtico siempre que hayan sido definidos por el programador
de la clase. Para realizar su tarea correctamente, un finalizador debera
terminar siempre llamando al finalizador de su super-clase.
Tampoco se puede saber el momento preciso en que los finalizadores van a
ser llamados. En muchas ocasiones ser conveniente que el programador
realice esas operaciones de finalizacin de modo explcito mediante otros
mtodos que l mismo llame.
El mtodo System.runFinalization() sugiere a la JVM que ejecute los
finalizadores de los objetos pendientes (que han perdido la referencia).
Parece ser que para que este mtodo se ejecute, en Java 1.1 hay que llamar
primero a gc() y luego a runFinalization().
Cmo funciona la finalizacin
La clase de Object no proporciona ninguna implementacin del mtodo de
Finalize , y el recolector de elementos no utilizados no marca los tipos
derivados de Object para la finalizacin a menos que reemplazan el mtodo
de Finalize .
Si un tipo invalida el mtodo de Finalize , el recolector de elementos no
utilizados agrega una entrada para cada instancia de tipo a una estructura
interna denominada cola de finalizacin. La cola de finalizacin contiene
entradas para todos los objetos del montn administrado cuyo cdigo de
GC::SuppressFinalize .
Durante el cierre de un dominio de aplicacin, a menos que el objeto
est exento de finalizacin. Durante el cierre, incluso se concluyen los
objetos que an estn accesibles.
implementacin de IDisposable::Dispose .
No se garantiza que los finalizadores de dos objetos se ejecuten en un
orden determinado, aunque un objeto haga referencia al otro. Es
decir, si el objeto A tiene una referencia a b del objeto y tienen
finalizadores, b de objeto podra haberse concluida ya cuando el
el
runtime
finalizadores
no
intenta
pueden
finalizadores
llamar
si
un
completamente,
finalizador
otros
bloqueos
indefinidamente.
Si el proceso finaliza sin dar al tiempo de ejecucin una oportunidad
de limpiar. En este caso, la primera notificacin de terminacin del
String nombre;
this.nombre = pNombre;
}
}
El resultado de esto sera imprimir por consola Marta
Linkografia
https://msdn.microsoft.com/eses/library/system.object.finalize(v=vs.110).aspx?cs-save-lang=1&cslang=fsharp#code-snippet-1
http://www.academia.edu/3831912/Metodo_constructor_y_destructor_en_jav
a