Si tengo un código similar al siguiente:La recolección de basura cuando las variables finales utilizados en las clases anónimas
public Constructor(final Object o) {
taskSystem.add(new CycleTask(15, 15, -1) {
@Override
public void execute() throws Throwable {
//access o here every 15 cycles forever
}
});
}
Cuándo o el recolector de basura, o nunca? ¿Solo cuando la tarea se ha recopilado, o permanecerá en la memoria para siempre porque es definitiva?
Eso no está muy bien expresado. El "espacio vital" debe ser "vitalicio". Obviamente, quien llama al método debe haber tenido una referencia, y la instancia de clase anónima tiene otra. La palabra clave 'final' prohíbe cualquier modificación a esa * variable * después de la inicialización, * durante * la ejecución del método, que es todo su alcance. – EJP