logo

Razlika između finala, finally i finalize

Final, finally i finalize su ključne riječi u Javi koje se koriste u rukovanju iznimkama. Svaka od ovih ključnih riječi ima drugačiju funkciju. Osnovna razlika između final, finally i finalize je u tome što konačni je modifikator pristupa, konačno je blok u rukovanju iznimkama i finalizirati je metoda klase objekata.

objasniti neovisnost podataka

Uz to, postoje mnoge razlike između final, finally i finalize. Popis razlika između finala, finally i finalize dan je u nastavku:

g. br. Ključ konačni konačno finalizirati
1. Definicija final je ključna riječ i modifikator pristupa koji se koristi za primjenu ograničenja na klasu, metodu ili varijablu. finally je blok u Java Exception Handlingu za izvršavanje važnog koda bilo da se iznimka dogodi ili ne. finalize je metoda u Javi koja se koristi za obavljanje obrade čišćenja neposredno prije nego što se objekt skupi u smeće.
2. Primjenjivo na Završna ključna riječ koristi se s klasama, metodama i varijablama. Blok finally je uvijek povezan s blokom try and catch u rukovanju iznimkama. metoda finalize() koristi se s objektima.
3. Funkcionalnost (1) Jednom deklarirana, finalna varijabla postaje konstantna i ne može se mijenjati.
(2) konačnu metodu ne može nadjačati potklasa.
(3) završna klasa se ne može naslijediti.
(1) finally block pokreće važan kod čak i ako se dogodi iznimka ili ne.
(2) finally block čisti sve resurse korištene u try bloku
finalize method izvodi aktivnosti čišćenja u odnosu na objekt prije njegovog uništenja.
4. Izvršenje Finalna metoda se izvršava samo kada je pozovemo. Blok finally se izvršava čim se izvrši blok try-catch.

Njegovo izvršenje ne ovisi o iznimci.

metoda finalize se izvodi neposredno prije nego što se objekt uništi.

Java konačni primjer

Razmotrimo sljedeći primjer u kojem deklariramo konačnu varijablu age. Jednom deklarirano ne može se mijenjati.

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

Izlaz:

Razlika između finala, finally i finalize

U gornjem primjeru proglasili smo varijablu final. Slično tome, metode i klase možemo proglasiti konačnima pomoću ključne riječi final.

Java konačno Primjer

Pogledajmo donji primjer u kojem Java kod izbacuje iznimku, a blok catch obrađuje tu iznimku. Kasnije se finally blok izvršava nakon try-catch bloka. Nadalje, ostatak koda također se normalno izvršava.

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

Izlaz:

kako poništiti odabir u gimp-u
Razlika između finala, finally i finalize

Primjer dovršetka 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'); } } 

Izlaz:

Razlika između finala, finally i finalize