logo

Diferença entre final, finalmente e finalizar

Final, finalmente e finalize são palavras-chave em Java usadas no tratamento de exceções. Cada uma dessas palavras-chave possui uma funcionalidade diferente. A diferença básica entre final, finalmente e finalize é que o final é um modificador de acesso, finalmente é o bloco em Tratamento de Exceções e finalizar é o método da classe de objeto.

Junto com isso, existem muitas diferenças entre final, finalmente e finalizar. Uma lista de diferenças entre final, finalmente e finalize é fornecida abaixo:

Sr. não. Chave final finalmente finalizar
1. Definição final é a palavra-chave e o modificador de acesso usado para aplicar restrições a uma classe, método ou variável. finalmente está o bloco em Java Exception Handling para executar o código importante, independentemente de a exceção ocorrer ou não. finalize é o método em Java que é usado para realizar o processamento de limpeza logo antes do objeto ser coletado como lixo.
2. Aplicável a A palavra-chave final é usada com as classes, métodos e variáveis. Finalmente, o bloco está sempre relacionado ao bloco try e catch no tratamento de exceções. O método finalize() é usado com os objetos.
3. Funcionalidade (1) Uma vez declarada, a variável final torna-se constante e não pode ser modificada.
(2) o método final não pode ser substituído pela subclasse.
(3) a classe final não pode ser herdada.
(1) finalmente o bloco executa o código importante, mesmo que ocorra uma exceção ou não.
(2) o bloco finalmente limpa todos os recursos usados ​​no bloco try
O método finalize realiza as atividades de limpeza em relação ao objeto antes de sua destruição.
4. Execução O método final é executado somente quando o chamamos. Finalmente, o bloco é executado assim que o bloco try-catch é executado.

Sua execução não depende da exceção.

O método finalize é executado imediatamente antes do objeto ser destruído.

Exemplo final de Java

Vamos considerar o exemplo a seguir, onde declaramos a variável final idade. Uma vez declarado, não pode ser modificado.

FinalExampleTest.java

como faço para descobrir o tamanho do meu monitor
 public class FinalExampleTest { //declaring final variable final int age = 18; void display() { // reassigning value to age variable // gives compile time error age = 55; } public static void main(String[] args) { FinalExampleTest obj = new FinalExampleTest(); // gives compile time error obj.display(); } } 

Saída:

Diferença entre final, finalmente e finalizar

No exemplo acima, declaramos uma variável final. Da mesma forma, podemos declarar os métodos e classes finais usando a palavra-chave final.

Java finalmente Exemplo

Vamos ver o exemplo abaixo, onde o código Java lança uma exceção e o bloco catch trata essa exceção. Posteriormente, o bloco finalmente é executado após o bloco try-catch. Além disso, o restante do código também é executado normalmente.

FinalmenteExemplo.java

 public class FinallyExample { public static void main(String args[]){ try { System.out.println('Inside try block'); // below code throws divide by zero exception int data=25/0; System.out.println(data); } // handles the Arithmetic Exception / Divide by zero exception catch (ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } // executes regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Saída:

tornando o script de shell executável
Diferença entre final, finalmente e finalizar

Exemplo de finalização de Java

FinalizeExample.java

 public class FinalizeExample { public static void main(String[] args) { FinalizeExample obj = new FinalizeExample(); // printing the hashcode System.out.println('Hashcode is: ' + obj.hashCode()); obj = null; // calling the garbage collector using gc() System.gc(); System.out.println('End of the garbage collection'); } // defining the finalize method protected void finalize() { System.out.println('Called the finalize() method'); } } 

Saída:

Diferença entre final, finalmente e finalizar