Compartilhar via


Object.JavaFinalize Método

Definição

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 finalizeirrevogavelmente. 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.

Aplica-se a