Tutto quello che devi sapere su Final, Finalmente e Finalize in Java

Questo articolo su Finale, Finalmente e Finalizzazione in Java ti fornirà un elenco completo delle differenze tra le parole chiave Finale, Finale e Finale insieme a implementazioni pratiche.

Se hai esperienza precedente di , allora potresti aver notato che gli intervistatori tendono a porre domande complicate, solitamente raccolte dai concetti di base. Una di queste domande che viene posta principalmente è distinguere tra finale, infine e finalizzare in . Attraverso questo articolo, traccerò una linea chiara tra finale, finalmente e finalizzato in Java, il che ti aiuterà a ottenere informazioni migliori.

In questo articolo tratterò i seguenti argomenti:





Quindi, iniziamo con la prima parola chiave tra final, infine e finalize in Java.

Parola chiave finale

In Java, final è una parola chiave che può essere utilizzata anche come modificatore di accesso. In altre parole, la parola chiave finale viene utilizzata per limitare l'accesso di un utente. Può essere utilizzato in vari contesti come:



  1. Finale variabile
  2. Metodo finale
  3. Classe finale

Con ognuno di questi, la parola chiave finale ha un effetto diverso. Vediamo ora come influisce su ciascuno di essi uno per uno.

1. Fine variabile

Ogni volta che l'ultima parola chiave in viene utilizzato con una variabile, un campo o un parametro, significa che una volta che il riferimento è passato o l'istanza è stata eseguita, il suo valore non può essere modificato durante l'esecuzione del programma. Nel caso in cui a senza alcun valore è stata dichiarata come finale, è nota come variabile finale vuota / non inizializzata e può essere inizializzata solo tramite un costruttore.

Vediamo ora un esempio.



public class A {int var1 = 123 // dichiarazione di variabili finali final int var2 = 345 final int var3 // Tentativo di inizializzare una variabile finale vuota var = 555 // Errore A () {var1 = 111 // Nessun errore var2 = 333 // Errore di compilazione // Inizializzazione di una variabile finale vuota var3 = 444 // Nessun errore} // passaggio dei parametri finali void avg (int param1, final int param2) {param1 = 2345 // Nessun errore param2 = 1223 // Errore di compilazione} // dichiarazione dei campi finali void show () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

Quindi, si trattava di come la parola chiave finale influenza una variabile, vediamo ora come un metodo ne è influenzato.

2. Metodo finale

In Java, ogni volta che un metodo viene dichiarato come finale non può esserlo da qualsiasi classe figlia durante l'esecuzione del programma.

Vediamo un esempio.

// FINAL METHOD class A {final void method_abc () {System.out.println ('This is a Final method and cannot be overridden')} void method_xyz () {System.out.println ('This is a normal method and può essere sovrascritto ')}} la classe B estende A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' This is an overridden method in class B ')}}

Finora avete già visto i risultati della dichiarazione di una variabile e di un metodo final, andiamo ora oltre e vediamo cosa succede quando una classe viene dichiarata come finale in Java.

3. Classe finale

In Java, ogni volta che una classe viene dichiarata come finale, non può esserlo . Questo perché, una volta che una classe è stata dichiarata come finale, tutti i membri di dati e i metodi contenuti all'interno della classe verranno implicitamente dichiarati come finali. Inoltre, una volta che una classe viene dichiarata come finale, non può più essere dichiarata come astratta. In altre parole, una classe può essere una delle due, finale o astratta.

Vediamo un esempio.

// FINAL CLASS final class A {// class body} class B extends A {// Compilation Error // class body}

Spero che a questo punto abbiate capito bene il funzionamento della parola chiave finale. Quindi, andiamo avanti con questo articolo su final, infine e finalizzare in Java per scoprire il ruolo della parola chiave infine.

Infine Block

In Java, infine, è un blocco opzionale che viene utilizzato per il . È generalmente preceduto da un blocco try-catch. Infine il blocco viene utilizzato per eseguire un codice importante come la pulizia delle risorse o liberare l'utilizzo della memoria, ecc. Un blocco finalmente verrà eseguito indipendentemente dal fatto che un'eccezione sia gestita o meno. Pertanto, avvolgere i codici di pulizia in un blocco finally è considerata una buona pratica. Puoi anche usarlo con un blocco try senza bisogno di alcun blocco catch insieme ad esso.

Vediamo ora un esempio dello stesso.

class A {public static void main (String args []) {try {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } finalmente {System.out.println ('Infine Block')}}}

Fino ad ora, ho già discusso le parole chiave finali e infine in Java. Facciamo ora un po 'di luce sull'ultima parola chiave tra le tre, ovvero finalize keyword in Java.

Finalizza metodo

Finalize è un metodo non statico protetto definito nella classe Object e quindi disponibile per tutti gli oggetti in Java.Questo metodo èchiamato dal garbage collector prima che un oggetto venga completamente distrutto.Come a volte,un potrebbe essere necessario completare alcune attività importanti come chiudere una connessione aperta, liberare una risorsa, ecc. prima che venga distrutta. Se queste attività non vengono eseguite, potrebbe diminuire l'efficienza del programma. Quindi, ilgarbage collector lo chiama per gli oggetti a cui non si fa più riferimento e che sono stati contrassegnati per la garbage collection.

Questo metodo è dichiarato protetto per limitarne l'utilizzo dall'esterno della classe. Ma puoi sovrascriverlo dall'interno della classe per definirne le proprietà al momento della raccolta dei rifiuti.

configurare hadoop su ubuntu

Vediamo un esempio dello stesso.

public class A {public void finalize () throws Throwable {System.out.println ('Object is deleted by the Garbage Collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Con questo, arriviamo alla fine di questo articolo sul finale, finalmente e finalizziamo in Java. Per concludere, ho aggiunto un confronto tra tutte e tre le parole chiave che ti aiuterà a recuperare le principali differenze a colpo d'occhio.

Tabella di confronto: parole chiave finali vs finali vs finalizzate in Java

Fattore Finale Infine Finalizza
Definizione Final è una parola chiave e viene utilizzata come modificatore di accesso in JavaInfine è un blocco in Java utilizzato per la gestione delle eccezioniFinalize è un metodo in Java utilizzato per Garbage Collection
Applicazione Final in Java viene utilizzato con variabili, metodi e classi per impostare le autorizzazioni di accessoInfine viene utilizzato il blocco insieme a un blocco try and catchIl metodo Finalize in Java viene utilizzato con gli oggetti che non sono più in uso
Funzione La variabile finale in Java è una costante il cui valore non può essere modificato una volta assegnato.

Il metodo finale in Java non può essere sovrascritto dalle sue classi figlie.

La classe finale in Java non può essere ereditata da nessuna classe figlia.

Infine il blocco in Java aiuta a ripulire le risorse che sono state utilizzate nel blocco tryIl metodo Finalize aiuta a ripulire le attività per l'oggetto prima che venga distrutto dal Garbage Collector
Esecuzione Viene eseguito quando viene richiamato dal compilatoreViene eseguito subito dopo l'esecuzione del blocco try-catchViene eseguito appena prima che un oggetto venga distrutto

Spero di essere stato in grado di chiarire i concetti e di averti aiutato ad aggiungere valore alle tue conoscenze attraverso questa Finale, Finalmente e Finalizzazione in Java.

Se hai trovato questo articolo su 'Final, Finalmente e Finalize in Java 'Rilevante, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo Finale, Finalmente e Finalizza in Java e ti risponderemo.