final, finally 및 finalize는 예외 처리에 사용되는 Java의 키워드입니다. 각 키워드에는 서로 다른 기능이 있습니다. final, finally 및 finalize의 기본적인 차이점은 다음과 같습니다. 결정적인 액세스 수정자입니다. 마지막으로 는 예외 처리의 블록이고 마무리하다 객체 클래스의 방법입니다.
이와 함께 final, finally 및 finalize 간에는 많은 차이점이 있습니다. final, finally 및 finalize의 차이점 목록은 다음과 같습니다.
아니 씨. | 열쇠 | 결정적인 | 마지막으로 | 마무리하다 |
---|---|---|---|---|
1. | 정의 | final은 클래스, 메소드 또는 변수에 제한을 적용하는 데 사용되는 키워드 및 액세스 한정자입니다. | finally는 예외 발생 여부에 관계없이 중요한 코드를 실행하는 Java 예외 처리의 블록입니다. | finalize는 객체가 가비지 수집되기 직전에 정리 처리를 수행하는 데 사용되는 Java의 메서드입니다. |
2. | 적용 대상 | Final 키워드는 클래스, 메소드, 변수와 함께 사용됩니다. | finally 블록은 항상 예외 처리의 try 및 catch 블록과 관련됩니다. | finalize() 메소드는 객체와 함께 사용됩니다. |
삼. | 기능성 | (1) 한번 선언된 최종 변수는 상수가 되며 변경할 수 없습니다. (2) 최종 메서드는 하위 클래스로 재정의될 수 없습니다. (3) 최종 클래스는 상속될 수 없습니다. | (1) finally 블록은 예외가 발생하더라도 중요한 코드를 실행합니다. (2) finally 블록은 try 블록에서 사용된 모든 리소스를 정리합니다. | finalize 메소드는 객체가 파괴되기 전에 객체에 대한 정리 활동을 수행합니다. |
4. | 실행 | 최종 메소드는 호출할 때만 실행됩니다. | finally 블록은 try-catch 블록이 실행되자마자 실행됩니다. 실행은 예외에 의존하지 않습니다. | finalize 메소드는 객체가 소멸되기 직전에 실행됩니다. |
자바 최종 예
최종 변수 age를 선언하는 다음 예제를 살펴보겠습니다. 한번 선언되면 수정할 수 없습니다.
FinalExampleTest.java
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(); } }
산출:
위의 예에서는 변수 final을 선언했습니다. 마찬가지로 final 키워드를 사용하여 메서드와 클래스를 final로 선언할 수 있습니다.
마침내 자바 예
Java 코드가 예외를 발생시키고 catch 블록이 해당 예외를 처리하는 아래 예제를 살펴보겠습니다. 나중에 try-catch 블록 다음에 finally 블록이 실행됩니다. 또한 나머지 코드도 정상적으로 실행됩니다.
finallyExample.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...'); } }
산출:
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'); } }
산출:
자바 색상