Object.JavaFinalize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.
[Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")]
protected virtual void JavaFinalize ();
[<Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")>]
abstract member JavaFinalize : unit -> unit
override this.JavaFinalize : unit -> unit
- Atributos
Exceções
Comentários
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. Uma subclasse substitui o finalize
método para descartar recursos do sistema ou para executar outra limpeza.
O contrato geral de é que ele é invocado se e quando a máquina virtual Java™ determinou que não há mais nenhum meio pelo qual esse objeto possa ser acessado finalize
por qualquer thread que ainda não tenha morrido, exceto como resultado de uma ação tomada pela finalização de algum outro objeto ou classe que esteja pronto para ser finalizado. O finalize
método pode tomar qualquer ação, incluindo tornar esse objeto disponível novamente para outros threads, o objetivo usual do , no entanto, é executar ações de limpeza antes que o objeto seja descartado finalize
irrevogavelmente. Por exemplo, o método finalize para um objeto que representa uma conexão de entrada/saída pode executar transações de E/S explícitas para interromper a conexão antes que o objeto seja descartado permanentemente.
O finalize
método de classe Object
não executa nenhuma ação especial, ele simplesmente retorna normalmente. Subclasses de Object
podem substituir essa definição.
A linguagem de programação Java não garante qual thread invocará o finalize
método para um determinado objeto. É garantido, no entanto, que o thread que invoca finalize não manterá nenhum bloqueio de sincronização visível pelo usuário quando finalize for invocado. Se uma exceção não detectada for lançada pelo método finalize, a exceção será ignorada e a finalização desse objeto será encerrada.
Depois que o método tiver sido invocado finalize
para um objeto, nenhuma outra ação será executada até que a máquina virtual Java tenha determinado novamente que não há mais nenhum meio pelo qual esse objeto possa ser acessado por qualquer thread que ainda não tenha morrido, incluindo possíveis ações de outros objetos ou classes que estão prontos para serem finalizados, momento em que o objeto pode ser descartado.
O finalize
método nunca é invocado mais de uma vez por uma máquina virtual Java para qualquer objeto específico.
Qualquer exceção lançada pelo finalize
método faz com que a finalização desse objeto seja interrompida, mas é ignorada.
Documentação Java para java.lang.Object.finalize()
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.