Kõik, mida peate teadma Java'is lõplikult, lõpuks ja lõplikult



See artikkel Java, Final, Final ja Finalize kohta annab teile täieliku loendi märksõnade Final, Last ja Finalise erinevustest koos praktiliste rakendustega.

Kui teil on varasemaid kogemusi , siis võite olla märganud, et intervjueerijad kipuvad esitama keerulisi küsimusi, mis tavaliselt on võetud põhimõistetest. Üks selline küsimus, mida enamasti küsitakse, on teha vahet lõplikul, lõplikul ja lõplikul aastal . Selle artikli vahendusel tõmban Java-s lõpliku, lõpliku ja lõpliku vormistamise vahel selge piiri, mis aitab teil paremaid teadmisi saada.

Selles artiklis käsitlen järgmisi teemasid:





Alustame siis esimese märksõnaga lõplike, lõpuks ja lõpetame Java-s.

Lõplik märksõna

Java keeles on final märksõna, mida saab kasutada ka juurdepääsu modifitseerijana. Teisisõnu kasutatakse lõplikku märksõna kasutaja juurdepääsu piiramiseks. Seda saab kasutada erinevates kontekstides, näiteks:



  1. Muutuv finaal
  2. Lõplik meetod
  3. Lõplik klass

Kõigi nende puhul on lõplikul märksõnal erinev mõju. Vaatame nüüd, kuidas see mõjutab neid kõiki ükshaaval.

1. Muutuv lõpp

Alati, kui viimane märksõna on kasutatakse muutuja, välja või parameetriga, see tähendab, et kui viide on edasi antud või eksemplar tehtud, ei saa selle väärtust kogu programmi täitmise ajal muuta. Juhul a ilma et väärtus oleks lõplikuks tunnistatud, nimetatakse seda tühjaks / initsialiseerimata lõplikuks muutujaks ja seda saab initsialiseerida ainult konstruktori kaudu.

Vaatame nüüd ühte näidet.



avalik klass A {int var1 = 123 // lõplike muutujate lõplikuks deklareerimine int var2 = 345 lõplik int var3 // tühja lõpliku muutuja var = 555 initsialiseerimine // Viga A () {var1 = 111 // Viga var2 = 333 // Kompileerimisviga // Tühja lõpliku muutuja initsialiseerimine var3 = 444 // Pole viga} // lõplike parameetrite edastamine void avg (int param1, final int param2) {param1 = 2345 // Viga pole param2 = 1223 // Koosteviga} // lõplike väljade tühiseks kuulutamine show () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

See puudutas kõike seda, kuidas lõplik märksõna mõjutab muutujat. Vaatame nüüd, kuidas see meetodit mõjutab.

2. Lõplik meetod

Kui meetod on lõplikuks kuulutatud, ei saa see Java-s olla iga lapseklass kogu programmi täitmise ajal.

Vaatame näite.

// LÕPUMEETOD klass A {final void method_abc () {System.out.println ('See on lõplik meetod ja seda ei saa alistada')} void method_xyz () {System.out.println ('See on tavaline meetod ja saab alistada ')}} klass B laiendab A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' See on klassis B alistatud meetod ')}}

Siiani olete juba näinud muutuja ja meetodi lõplikuks kuulutamise tulemusi, saate nüüd edasi liikuda ja vaadata, mis juhtub, kui klass kuulutatakse Java-s lõplikuks.

3. Lõplik klass

Kui Java klass lõplikuks kuulutatakse, ei saa see Java-s nii olla . Seda seetõttu, et kui klass on lõplikuks kuulutatud, kuulutatakse kõik klassi kuuluvad andmeliikmed ja meetodid kaudselt lõplikeks. Samuti, kui klass on lõplikuks kuulutatud, ei saa seda enam abstraktseks kuulutada. Teisisõnu võib klass olla kas kahest neist, lõplik või abstraktne.

Vaatame näite.

// FINAL CLASS finaalklass A {// class body} klass B pikendab A {// Compilation Error // class body}

Loodan, et olete nüüdseks lõpliku märksõna toimimisest selgelt aru saanud. Niisiis, jätkame selle artikliga, mis käsitleb viimast, lõpuks ja lõpetame Java-s, et teada saada lõpliku märksõna roll.

Lõpuks blokeeri

Jaavas on lõpuks valikuline plokk, mida kasutatakse . Sellele eelneb üldjuhul proovimise püüdmise blokeering. Lõpuks kasutatakse plokki sellise olulise koodi käivitamiseks nagu ressursside puhastamine või mälukasutuse vabastamine. Lõplik plokk käivitatakse sõltumata sellest, kas erandit käsitletakse või mitte. Seega peetakse puhastuskoodide pakkimist lõplikku plokki heaks tavaks. Saate seda kasutada ka prooviplokiga, ilma et oleksite vaja ühtegi blokeerimisplokki.

Vaatame nüüd sama näidet.

klass A {public static void main (String args []) {proovige {System.out.println ('Try Block') visake uus Exception ()} catch (Exception e) {System.out.println ('Catch Block') } lõpuks {System.out.println ('Lõpuks blokeeri')}}}

Siiani olen Java-s juba arutanud lõplikke ja lõpuks märksõnu. Heitkem nüüd valgust viimasele märksõnale nende kolme seas, see tähendab, viimistlege märksõna Java-s.

Lõpeta meetod

Finalize on kaitstud mittestaatiline meetod, mis on määratletud klassis Object ja on seega saadaval kõigi Java objektide jaoks.See meetod onkutsus prügikoguja enne eseme täielikku hävimist.Nagu mõnikord,an võib-olla peab enne selle hävimist täitma mõne olulise ülesande, nagu avatud ühenduse sulgemine, ressursi vabastamine jne. Kui neid ülesandeid ei tehta, võib see vähendada programmi tõhusust. Seegaprügikoguja kutsub seda objektide jaoks, millele pole enam viidatud ja mis on prügiveoks märgistatud.

See meetod tunnistatakse kaitstuks, et piirata selle kasutamist väljaspool klassi. Kuid selle omaduste määratlemiseks prügi kogumise ajal saate selle klassi sees tühistada.

kuidas aws cli avada

Vaatame sama näite.

avalik klass A {public void finalize () viskab viskatavat {System.out.println ('Objekti hävitab prügikoguja')} avalik staatiline tühjus main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Sellega jõuame selle Java-i lõpliku, lõpliku ja lõpliku artiklini. Selle lõpetuseks lisasin võrdluse kõigi kolme märksõna vahel, mis aitab teil silmapilkselt välja tuua peamised erinevused.

Võrdlustabel - Lõplik vs Lõpuks vs Lõpeta märksõnad Java-s

Faktor Lõplik Lõpuks Lõpeta
Definitsioon Lõplik on märksõna ja seda kasutatakse Java-s juurdepääsumuundurinaLõpuks on Java plokk, mida kasutatakse erandite käsitlemiseksLõpuks on Java-meetod, mida kasutatakse prügikogumiseks
Rakendus Java-faili Final kasutatakse muutujate, meetodite ja klassidega juurdepääsulubade määramiseksLõpuks kasutatakse plokki koos proovimise ja püüdmise blokigaJava-s kasutatavat meetodit Finalise kasutatakse objektide puhul, mida enam ei kasutata
Funktsioon Java lõplik muutuja on konstant, mille väärtust ei saa pärast määramist muuta.

Java-klassi lõplikku meetodit ei saa selle alamklassid tühistada.

Jaava lõpuklassi ei saa ükski lapseklass pärida.

Lõpuks blokeerib Java blokeerimisel prooviplokis kasutatud ressursseLõpliku vormistamise meetod aitab objekti puhastada enne, kui prügikoguja selle hävitab
Täitmine See käivitatakse, kui kompilaator seda kutsubKäivitatakse kohe pärast proovimise püüdmise ploki käivitamistSee käivitatakse vahetult enne eseme hävitamist

Loodan, et selle Java, Final, Final ja Finalize kaudu suutsin mõisted selgeks saada ja aitasin teil oma teadmistele väärtust lisada.

Kui leiate selle artikli jaotisest „Lõplik, Lõpuks ja Lõpeta Java-s ”Asjakohane, vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Kas teil on meile küsimus? Palun mainige seda selle kommentaaride jaotises Lõplik, Lõpuks ja Lõpeta Java ja me pöördume teie poole.