Diferença entre Final, Finalmente e Finalizar em Java
Contente
- Gráfico de comparação
- Definição de Final
- Variável final
- Métodos finais
- Classe Final
- Definição de Finalizar
- Conclusão:
As palavras "final, finalmente e finalizar" estão dentro do golpe do Java. Cada um deles tem um funcionamento diferente. A diferença básica entre final, finalmente e finalizar é que final é um modificador de acesso, finalmente é um bloco e finalizar é um método de uma classe de objeto. Existem outras diferenças entre final, finalmente e final que são discutidas no gráfico de comparação.
- Gráfico de comparação
- Definição
- Principais diferenças
- Conclusão
Gráfico de comparação
Base para Comparação | Final | Finalmente | Finalizar |
---|---|---|---|
Basic | Final é uma "Palavra-chave" e "modificador de acesso" em Java. | Finalmente é um "bloco" em Java. | Finalize é um "método" em Java. |
Aplicável | Final é uma palavra-chave aplicável a classes, variáveis e métodos. | Finalmente, é um bloco que está sempre associado ao bloco try and catch. | finalize () é um método aplicável a objetos. |
Trabalhando | (1) A variável final torna-se constante e não pode ser reatribuída. (2) Um método final não pode ser substituído pela classe filho. (3) A classe final não pode ser estendida. | Um bloco "finalmente", limpe os recursos usados no bloco "tente". | O método Finalize executa as atividades de limpeza relacionadas ao objeto antes de sua destruição. |
Execução | O método final é executado após sua chamada. | O bloco "Finalmente" é executado logo após a execução do bloco "try-catch". | O método finalize () é executado imediatamente antes da destruição do objeto. |
Definição de Final
"Final" é uma palavra-chave em Java. É um modificador de acesso. A palavra-chave “final” é aplicável às classes, métodos e variáveis. Vamos ver como isso funciona com cada um deles.
Variável final
- Quando uma palavra-chave final é aplicada à variável, ela não pode mais ser modificada.
- Uma variável final deve ser inicializada quando declarada.
- Em uma convenção de codificação comum, as variáveis finais são declaradas em MAIÚSCULAS.
- A variável final não ocupa memória em uma base por instância.
Métodos finais
- Quando um método na classe é declarado como final, ele não pode ser substituído por sua subclasse.
- Pequenos métodos declarados finais podem ser feitos "inline" pelo compilador, o que reduzirá a sobrecarga da chamada de função e aumentará as melhorias de desempenho.
- Os métodos substituídos chamam, são resolvidos dinamicamente, mas quando um método é declarado como final, ele não pode ser substituído. Portanto, a chamada de função pode ser resolvida em tempo de compilação.
classe A {final void meth () {System.out.ln ("Este é um método final."); }} a classe B estende A {void meth () {// O Clas B não pode herdar o método da classe A. System.out.ln ("Não substitui"); }}
Classe Final
- Quando uma classe é declarada como final, ela não pode ser herdada por nenhuma subclasse.
- Declarar uma classe como final declarará automaticamente todos os seus métodos finais.
- Você não pode declarar uma classe como "abstrata" e "final".
classe final A {// ...} classe B estende A {// A classe B não pode herdar a classe A // ...}
- Em Java, “finalmente” é um bloco que está sempre associado ao bloco try / catch.
- O bloco "finalmente" é executado após o bloco try / catch e antes do código após o bloco try / catch.
- O bloco "final" será executado se a exceção for lançada ou não.
- Quando uma exceção é lançada e nenhum bloco catch coincide com a exceção mesmo assim, o bloco "final" é executado.
- Quando um método retorna ao chamador de dentro do bloco try / catch por meio de uma exceção não capturada ou uma declaração de retorno explícita, o bloco "final" é executado imediatamente antes do método retornar ao chamador.
- O bloco "finally" é usado para limpar os recursos ou liberar a memória usada no bloco "try".
- O bloco "final" é opcional, mas é uma boa prática escrever o bloco final após o bloco try / catch.
classe FinalmenteExemplo {// Este método lança uma exceção para fora do método. static void procA () {try {System.out.ln ("inside procA"); lançar nova RuntimeException ("demo"); } finalmente {System.out.ln ("procAs finalmente"); }} // Retorna de dentro de um bloco try. static void procB () {try {System.out.ln ("dentro de procB"); Retorna; } finalmente {System.out.ln ("procBs finalmente"); }} // Execute um bloco try normalmente. static void procC () {tente {System.out.ln ("inside procC"); } finalmente {System.out.ln ("procCs finalmente"); }} public static void main (String args) {try {procA (); } catch (Exceção e) {System.out.ln ("Exceção detectada"); procB (); procC (); }} // saída dentro de procA procA finalmente Exceção capturada dentro de procB procB finalmente dentro de procC procC finalmente
Definição de Finalizar
- Finalize é um método em uma classe de objeto.
- Um objeto pode conter alguns recursos não-java, como o identificador de arquivo; então deve ser liberado antes de ser destruído.
- Esse método é chamado pelo coletor de lixo antes de destruir o objeto completamente.
- Este método executa atividades de limpeza para o objeto antes de ser destruído.
A forma geral do método finalize () é a seguinte.
protected void finalize () {// código de finalização aqui}
O método finalize é declarado como protegido para que não possa ser acessado de fora da classe.
Esse método é sempre chamado antes da coleta de lixo.
- A palavra-chave final é um modificador de acesso, finalmente é um bloco e finalize é um método.
- A palavra-chave final é aplicável às classes, variáveis e métodos das classes, finalmente é um bloco associado ao bloco try catch que é usado para lidar com exceções, finalize é um método que opera apenas em objetos.
- A variável declarada como final se torna constante e não pode ser reatribuída novamente, um método declarado como final não pode ser substituído e a classe uma vez declarada como final nunca pode ser herdada. O bloco final é usado para limpar os recursos utilizados pelo bloco try and catch. O método finalize é usado para limpar os recursos usados por um objeto antes que ele seja destruído.
Conclusão:
Final, finalmente e finalizar têm um efeito diferente quando aplicados a um método.