logo

final, finally, finalize의 차이점

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, finally, finalize의 차이점

위의 예에서는 변수 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...'); } } 

산출:

final, finally, finalize의 차이점

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'); } } 

산출:

자바 색상
final, finally, finalize의 차이점