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:
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
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: