Se você tem alguma experiência anterior de , então você deve ter notado que os entrevistadores tendem a fazer perguntas complicadas, geralmente extraídas dos conceitos básicos. Uma dessas questões que mais se faz é diferenciar entre final, finalmente e finalizar em . Por meio deste artigo, estarei traçando uma linha clara entre final, finalmente e finalizar em Java, o que o ajudará a obter melhores insights.
Neste artigo, estarei cobrindo os seguintes tópicos:
- Palavra-chave final
- Finalmente Bloco
- Método de finalização
- Tabela de comparação - final, finalmente e finalizar em Java
Então, vamos começar com a primeira palavra-chave entre final, finalmente e finalizar em Java.
Palavra-chave final
Em Java, final é uma palavra-chave que também pode ser usada como um modificador de acesso. Em outras palavras, a palavra-chave final é usada para restringir o acesso de um usuário. Ele pode ser usado em vários contextos como:
Com cada uma delas, a palavra-chave final tem um efeito diferente. Vamos agora ver como isso afeta cada um deles, um por um.
1. Final variável
Sempre que a palavra-chave final em é usado com uma variável, campo ou parâmetro significa que uma vez que a referência é passada ou a instanciação é feita, seu valor não pode ser alterado durante a execução do programa. No caso de sem que nenhum valor tenha sido declarado como final, ela é conhecida como variável final em branco / não inicializada e pode ser inicializada apenas por meio de um construtor.
Vamos agora ver um exemplo.
public class A {int var1 = 123 // declarando variáveis finais final int var2 = 345 final int var3 // Tentando inicializar uma variável final em branco var = 555 // Erro A () {var1 = 111 // Sem erro var2 = 333 // Erro de compilação // Inicializando uma variável final em branco var3 = 444 // Sem erro} // passando os parâmetros finais void avg (int param1, final int param2) {param1 = 2345 // Sem erro param2 = 1223 // Erro de compilação} // declarando campos finais void show () {final int fieldVal = 300000 fieldVal = 400000 // Erro}}
Então, isso era tudo sobre como a palavra-chave final afeta uma variável, vamos agora ver como um método é afetado por ela.
2. Método Final
Em Java, sempre que um método é declarado como final, ele não pode ser por qualquer classe filha durante a execução do programa.
Vamos ver um exemplo.
// MÉTODO FINAL classe A {final void method_abc () {System.out.println ('Este é um método final e não pode ser substituído')} void method_xyz () {System.out.println ('Este é um método normal e pode ser substituído ')}} classe B extends A {void method_abc {// Erro de tempo de compilação} void method_xyz () {System.out.println (' Este é um método sobrescrito na classe B ')}}
Até agora você já viu os resultados da declaração de uma variável e um método final, vamos agora avançar e ver o que acontece quando uma classe é declarada como final em Java.
3. Aula Final
Em Java, sempre que uma classe é declarada como final, ela não pode ser . Isso ocorre porque, uma vez que uma classe é declarada como final, todos os membros de dados e métodos contidos na classe serão declarados implicitamente como final. Além disso, uma vez que uma classe é declarada como final, ela não pode mais ser declarada como abstrata. Em outras palavras, uma classe pode ser uma das duas, final ou abstrata.
Vamos ver um exemplo.
// CLASSE FINAL classe final A {// corpo da classe} classe B estende A {// Erro de compilação // corpo da classe}
Espero que agora você tenha entendido claramente o funcionamento da palavra-chave final. Então, vamos agora prosseguir com este artigo sobre final, finalmente e finalizar em Java para descobrir o papel da palavra-chave finalmente.
Finalmente Bloco
Em Java, finalmente é um bloco opcional que é usado para o . Geralmente é precedido por um bloco try-catch. O bloco finally é usado para executar um código importante, como limpeza de recursos ou liberar o uso de memória, etc. Um bloco finally será executado independentemente do fato de uma exceção ser tratada ou não. Portanto, agrupar os códigos de limpeza em um bloco finally é considerado uma boa prática. Você também pode usá-lo com um bloco try sem precisar de nenhum bloco catch junto com ele.
Vamos agora ver um exemplo do mesmo.
class A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } finalmente {System.out.println ('Finalmente bloco')}}}
Até agora, já discuti as palavras-chave finais e finalmente em Java. Vamos agora lançar alguma luz sobre a última palavra-chave entre as três, ou seja, finalizar palavra-chave em Java.
Método de finalização
Finalize é um método protegido não estático que é definido na classe Object e, portanto, está disponível para todo e qualquer objeto em Java.Este método échamado pelo coletor de lixo antes que um objeto seja completamente destruído.Como às vezes,a pode ter que concluir alguma tarefa importante como fechar uma conexão aberta, liberar um recurso, etc. antes que ele seja destruído. Se essas tarefas não forem realizadas, isso pode diminuir a eficiência do programa. Então, ocoletor de lixo o chama para os objetos que não são mais referenciados e foram marcados para coleta de lixo.
Este método é declarado como protegido para restringir seu uso de fora da classe. Mas você pode substituí-lo de dentro da classe para definir suas propriedades no momento da coleta de lixo.
aprenda ssis passo a passo
Vamos ver um exemplo do mesmo.
public class A {public void finalize () throws Throwable {System.out.println ('O objeto é destruído pelo coletor de lixo')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}
Com isso, chegamos ao final deste artigo no final, finalmente e finalizar em Java. Para concluir isso, adicionei uma comparação entre todas as três palavras-chave que o ajudará a localizar as principais diferenças em um relance.
Tabela de comparação - Final vs Finalmente vs Finalizar Palavras-chave em Java
Fator | Final | Finalmente | Finalizar |
Definição | Final é uma palavra-chave e é usada como modificador de acesso em Java | Finalmente, é um bloco em Java usado para tratamento de exceções | Finalize é um método em Java usado para coleta de lixo |
Inscrição | Final em Java é usado com variáveis, métodos e classes para definir permissões de acesso | Finalmente, o bloco é usado junto com um bloco try e catch | O método Finalize em Java é usado com objetos que não estão mais em uso |
Função | A variável final em Java é uma constante cujo valor não pode ser alterado depois de atribuído. O método final em Java não pode ser substituído por suas classes filhas. A classe final em Java não pode ser herdada por nenhuma classe filha. | Finalmente, o bloco em Java ajuda a limpar os recursos que foram usados no bloco try | O método Finalize ajuda a limpar as atividades do objeto antes que ele seja destruído pelo coletor de lixo |
Execução | É executado quando é invocado pelo compilador | Executa logo após a execução do bloco try-catch | Ele é executado logo antes de um objeto ser destruído |
Espero que através deste Final, Finalmente e Finalize em Java, eu tenha conseguido esclarecer os conceitos e ajudado a agregar valor ao seu conhecimento.
Se você encontrou este artigo sobre “Final, Finalmente e Finalizar em Java ' relevante, Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Tem alguma questão para nós? Mencione isso na seção de comentários deste Final, Finalmente e Finalizar em Java e entraremos em contato com você.