¿Limpiar código en finalizar () o finalmente ()?

Tenía la opinión general de que la limpieza de los recursos se realiza en elfinally bloquear,
Recientemente, encontré este fragmento de código en particular en una clase y estaba anulando elObject clase'finalize() método.

protected void finalize() {  
    try {
        In.close(); 
        Out.close();
        socket.close();
    }
    catch (Exception e) {
        //logger code here
    }
}

¿Es esta una buena idea? ¿Cuáles son los pros y los contras definalize() terminadofinally?

Respuestas a la pregunta(9)

Su respuesta a la pregunta