Priporočena, 2024

Izbira Urednika

Razlika med končnim in končnim v Javi

Besede „končno, končno in dokončno“ so v kontekstu Jave. Vsak od njih ima drugačno delovanje. Osnovna razlika med končnim, končnim in dokončanim je, da je končni modifikator dostopa, končno pa je blok in dokončanje je metoda objektnega razreda. Obstajajo še nekatere druge razlike med končnimi, končno in dokončnimi, ki so obravnavane v primerjalni tabeli.

Primerjalna tabela

Podlaga za primerjavoKončnoKončnoDokončaj
OsnovnoFinal je "ključna beseda" in "modifikator dostopa" v Javi.Končno je "blok" v Javi.Dokončanje je "metoda" v Javi.
PrimernoKončna je ključna beseda, ki se uporablja za razrede, spremenljivke in metode.Končno je blok, ki je vedno povezan s poskusnim in ulovnim blokom.finalize () je metoda, ki se uporablja za objekte.
Delo(1) Končna spremenljivka postane konstantna in je ni mogoče ponovno dodeliti.
(2) Končni način ne more preglasiti podrejeni razred.
(3) Končnega razreda ni mogoče podaljšati.
Blok "končno", očisti vire, ki se uporabljajo v bloku "poskusi".Metoda Finalizira opravi čiščenje aktivnosti, povezanih z objektom pred njegovim uničenjem.
IzvajanjeKončna metoda se izvede po njenem pozivu.Blok "Končno" se izvede takoj po izvedbi bloka "poskusi ujeti".metoda finalize () se izvede tik pred uničenjem objekta.

Opredelitev končnega

»Končna« je ključna beseda v Javi. To je modifikator dostopa. Ključna beseda »končna« se uporablja za razrede, metode in spremenljivke. Poglejmo, kako deluje z vsako od njih.

Končna spremenljivka

  • Če je za spremenljivko uporabljena končna ključna beseda, je ni mogoče dodatno spremeniti.
  • Končno spremenljivko je treba inicializirati, ko je deklarirana.
  • V skupni konvenciji kodiranja so končne spremenljivke deklarirane v UPPERCASE.
  • Končna spremenljivka ne zaseda pomnilnika na podlagi posameznega primerka.
 končno int FILE_OPEN = 2; 

Končne metode

  • Če je metoda v razredu deklarirana kot končna, je ni mogoče preglasiti s svojim podrazredom.
  • Majhne metode, ki so razglašene za končne, jih lahko prevede kot "inline", kar bo zmanjšalo obremenitve funkcijskega klica in povečalo zmogljivostne izboljšave.
  • Preusmerjeni klici metod so rešeni dinamično, toda ko je metoda deklarirana kot končna, je ni mogoče preglasiti. Funkcijsko klicanje je torej mogoče rešiti v času prevajanja.
 razred A {končno void meth () {System.out.println ("To je končna metoda."); }} Razred B razširja {void meth () {// Clas B ne more podedovati metode razreda A. System.out.println ("Ne preglasi"); }} 

Končni razred

  • Ko je razred deklariran kot končni, ga ne more podedovati noben podrazred.
  • Deklariranje razreda kot končnega bo samodejno razglasilo vse njegove metode končne.
  • Razreda ne morete razglasiti za »abstraktno« in »končno«.
 končni razred A {// ...} razred B razširi A {// Razred B ne more dedovati razreda A // ...} 

Opredelitev končnega

  • V Javi je »končno« blok, ki je vedno povezan s blokom try / catch.
  • Blok »na koncu« se izvede po bloku try / catch in pred kodo, ki sledi bloku try / catch.
  • Blok »končno« bo izvedel, ali je izjema vržena ali ne.
  • Ko se vrže izjema in noben ulovni blok ne ustreza izjeme, se izvede blok »končno«.
  • Ko se metoda vrne klicatelju iz bloka try / catch prek nepovezane izjeme ali izrecnega stavka return, se blok »na koncu« izvede tik preden se metoda vrne klicatelju.
  • Blok »končno« se uporablja za čiščenje virov ali za sprostitev pomnilnika, uporabljenega v bloku »poskusi«.
  • Blok »končno« je neobvezen, vendar je dobra praksa, da napišemo blok za končno po bloku try / catch.
 class FinallyExample {// Ta metoda vrne izjemo iz metode. static void procA () {try {System.out.println ("znotraj procA"); metati novo RuntimeException ("demo"); } končno {System.out.println ("procA's končno"); }} // Vrni se iz preskusnega bloka. static void procB () {poskusite {System.out.println ("znotraj procB"); vrnitev; } končno {System.out.println ("procB's končno"); }} // Izvršite poskusni blok normalno. static void procC () {try {System.out.println ("znotraj procC"); } končno {System.out.println ("procC's končno"); }} statični stalni void main (String args []) {try {procA (); } catch (Exception e) {System.out.println ("Izjema ujet"); } procB (); procC (); }} // izhod znotraj procA je končno Izjema ujet v procB je končno znotraj procC-ja končno 

Opredelitev finalizacije

  • Finaliziranje je metoda v razredu predmetov.
  • Objekt lahko vsebuje nekatere vire, ki niso java, kot je ročaj datoteke; potem je treba osvoboditi, preden se uniči.
  • Ta metoda se sklicuje na zbiralnik smeti, preden objekt popolnoma uniči.
  • Ta metoda izvaja dejavnosti čiščenja za objekt, preden se uniči.

Splošna oblika metode finalize () je naslednja.

 protected void finalize () {// tukaj zaključna koda} 

Metoda finaliziranja je deklarirana kot zaščitena, tako da je ni mogoče dostopati izven razreda.

Ta metoda se vedno imenuje pred zbiranjem smeti.

Ključne razlike med končnim, končnim in končnim

  1. Ključna beseda final je modifikator dostopa, končno je blok in dokončanje je metoda.
  2. Ključna beseda final se uporablja za razrede, spremenljivke in metode razredov, končno pa je blok povezan s poskusnim blokom, ki se uporablja za ravnanje z izjemami, dokončanje je metoda, ki deluje samo na objektih.
  3. Spremenljivka, ki je enkrat deklarirana kot končna, postane konstantna in je ni mogoče znova dodeliti, metode, ki je deklarirana kot končna, ne more biti razveljavljena, in razred, ki je enkrat razglašen kot končni, se ne more podedovati. Končni blok se uporablja za čiščenje virov, ki jih uporablja blok poskusi in ulov. Metoda finalizira se uporablja za čiščenje virov, ki jih uporablja objekt, preden je predmet uničen.

Sklep:

Končni, dokončni in dokončan ima drugačen učinek, če ga uporabimo za metodo.

Top