Viimeinen, lopullinen ja viimeistely ovat Java-avainsanoja, joita käytetään poikkeusten käsittelyssä. Jokaisella näistä avainsanoista on erilainen toiminnallisuus. Perusero lopullisen, lopullisen ja viimeistelyn välillä on, että lopullinen on pääsyn muokkaaja, vihdoinkin on lohko Poikkeuskäsittelyssä ja viimeistellä on objektiluokan menetelmä.
Tämän lisäksi lopullisen, lopullisen ja viimeistelyn välillä on monia eroja. Alla on luettelo eroista lopullisen, lopullisen ja viimeistelyn välillä:
esimerkki binaarihakupuusta
herra ei. | Avain | lopullinen | vihdoinkin | viimeistellä |
---|---|---|---|---|
1. | Määritelmä | final on avainsana ja pääsyn muokkaaja, jota käytetään rajoitusten soveltamiseen luokassa, menetelmässä tai muuttujassa. | Lopuksi Java Exception Handlingin lohko suorittaa tärkeän koodin riippumatta siitä, tapahtuuko poikkeus vai ei. | finalize on Java-menetelmä, jota käytetään puhdistamiseen juuri ennen kuin objekti kerätään roskat. |
2. | Koskee | Lopullista avainsanaa käytetään luokkien, menetelmien ja muuttujien kanssa. | Lopuksi lohko liittyy aina try and catch -lohkoon poikkeuskäsittelyssä. | finalize() -menetelmää käytetään objektien kanssa. |
3. | Toiminnallisuus | (1) Kun lopullinen muuttuja on ilmoitettu, siitä tulee vakio, eikä sitä voi muuttaa. (2) alaluokka ei voi ohittaa lopullista menetelmää. (3) viimeistä luokkaa ei voi periä. | (1) Lopuksi block suorittaa tärkeän koodin, vaikka poikkeus tapahtuisi tai ei. (2) lopuksi block puhdistaa kaikki try-lohkossa käytetyt resurssit | viimeistely-menetelmä suorittaa puhdistustoimet kohteen suhteen ennen sen tuhoamista. |
4. | Toteutus | Lopullinen menetelmä suoritetaan vain, kun kutsumme sitä. | Lopuksi lohko suoritetaan heti, kun try-catch -lohko suoritetaan. Sen toteutus ei ole riippuvainen poikkeuksesta. | finalize-menetelmä suoritetaan juuri ennen objektin tuhoamista. |
Java lopullinen esimerkki
Tarkastellaan seuraavaa esimerkkiä, jossa ilmoitamme lopullisen muuttuvan iän. Kun se on ilmoitettu, sitä ei voi muuttaa.
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(); } }
Lähtö:
Yllä olevassa esimerkissä olemme ilmoittaneet muuttujan lopullisen. Vastaavasti voimme julistaa menetelmät ja luokat lopullisiksi käyttämällä lopullista avainsanaa.
Java vihdoin esimerkki
Katsotaanpa alla olevaa esimerkkiä, jossa Java-koodi heittää poikkeuksen ja catch-lohko käsittelee poikkeuksen. Myöhemmin viimeinen lohko suoritetaan try-catch-lohkon jälkeen. Lisäksi loput koodista suoritetaan normaalisti.
LopuksiEsimerkki.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...'); } }
Lähtö:
tekniikan edut ja haitat
Java viimeistely Esimerkki
ViimeisteleEsimerkki.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'); } }
Lähtö: