Alles wat u moet weten over Final, Final en Finalize in Java



Dit artikel over Final, Final en Finalize in Java geeft u een volledige lijst met verschillen tussen de trefwoorden Final, Final en Finalize, samen met praktische implementaties.

Als u eerder ervaring heeft met , dan is het je misschien opgevallen dat de interviewers de neiging hebben om lastige vragen te stellen, meestal overgenomen uit de basisconcepten. Een van die vragen die meestal wordt gesteld, is om onderscheid te maken tussen definitief, definitief en definitief in . Door middel van dit artikel zal ik een duidelijke lijn trekken tussen definitief, definitief en finaliseren in Java, wat u zal helpen bij het verkrijgen van betere inzichten.

In dit artikel zal ik de volgende onderwerpen behandelen:





Laten we dus aan de slag gaan met het allereerste zoekwoord onder final, en eindelijk afronden in Java.

Laatste trefwoord

In Java is final een trefwoord dat ook kan worden gebruikt als toegangsmodificator. Met andere woorden, het laatste zoekwoord wordt gebruikt om de toegang van een gebruiker te beperken. Het kan in verschillende contexten worden gebruikt, zoals:



  1. Variabele finale
  2. Laatste methode
  3. Laatste klasse

Bij elk van deze heeft het laatste zoekwoord een ander effect. Laten we nu eens kijken hoe dit elk van hen een voor een beïnvloedt.

1. Variabel einde

Telkens wanneer het laatste trefwoord in wordt gebruikt met een variabele, veld of parameter betekent dit dat als de referentie eenmaal is doorgegeven of de instantiatie is gedaan, de waarde niet kan worden gewijzigd tijdens de uitvoering van het programma. In het geval een zonder enige waarde is gedeclareerd als definitief, dan staat het bekend als blanco / niet-geïnitialiseerde laatste variabele en kan alleen worden geïnitialiseerd via een constructor.

Laten we nu een voorbeeld bekijken.



public class A {int var1 = 123 // declareren van laatste variabelen final int var2 = 345 final int var3 // Proberen een lege laatste variabele te initialiseren var = 555 // Fout A () {var1 = 111 // Geen fout var2 = 333 // Compilatiefout // Initialiseren van een lege laatste variabele var3 = 444 // Geen fout} // doorgeven van de laatste parameters void avg (int param1, final int param2) {param1 = 2345 // Geen fout param2 = 1223 // Compilatiefout} // declareren van definitieve velden ongeldig show () {final int fieldVal = 300000 fieldVal = 400000 // Error}}

Dus dit ging allemaal over hoe het laatste zoekwoord een variabele beïnvloedt. Laten we nu eens kijken hoe een methode erdoor wordt beïnvloed.

2. Laatste methode

In Java kan een methode die als definitief wordt verklaard, niet zijn door een kindklasse tijdens de uitvoering van het programma.

Laten we een voorbeeld bekijken.

// FINAL METHOD class A {final void method_abc () {System.out.println ('Dit is een Final-methode en kan niet worden overschreven')} void method_xyz () {System.out.println ('Dit is een normale methode en kan worden overschreven ')}} klasse B verlengt A {void method_abc {// Compile Time Error} void method_xyz () {System.out.println (' Dit is een overschreven methode in klasse B ')}}

Tot nu toe heb je al de resultaten gezien van het declareren van een variabele en een methode final, laten we nu verder gaan en kijken wat er gebeurt als een klasse in Java als definitief wordt gedeclareerd.

3. Laatste klasse

In Java kan een klasse die als definitief wordt gedeclareerd, dat niet zijn . Dit komt omdat, zodra een klasse als definitief is gedeclareerd, alle gegevensleden en methoden in de klasse impliciet als definitief worden gedeclareerd. Ook als een klasse eenmaal als definitief is verklaard, kan deze niet langer als abstract worden gedeclareerd. Met andere woorden, een klasse kan een van de twee zijn, definitief of abstract.

Laten we een voorbeeld bekijken.

// FINAL CLASS final class A {// class body} class B breidt A uit {// Compilatiefout // class body}

Ik hoop dat je inmiddels de werking van het laatste sleutelwoord goed hebt begrepen. Dus laten we nu verder gaan met dit artikel over final, eindelijk en finaliseren in Java om de rol van eindelijk trefwoord te ontdekken.

Eindelijk blokkeren

In Java is er eindelijk een optioneel blok dat wordt gebruikt voor de . Het wordt meestal voorafgegaan door een try-catch-blok. Ten slotte wordt blok gebruikt om een ​​belangrijke code uit te voeren, zoals het opschonen van bronnen of het vrijmaken van geheugengebruik, enz. Een definitief blok zal worden uitgevoerd ongeacht of een uitzondering wordt afgehandeld of niet. Daarom wordt het als een goede gewoonte beschouwd om de opschoningscodes in een slotblok te verpakken. Je kunt het ook gebruiken met een try-blok zonder dat je er een catch-blok bij nodig hebt.

Laten we nu een voorbeeld van hetzelfde bekijken.

class A {public static void main (String args []) {probeer {System.out.println ('Try Block') throw new Exception ()} catch (Exception e) {System.out.println ('Catch Block') } eindelijk {System.out.println ('Eindelijk blokkeren')}}}

Tot nu toe heb ik de laatste en uiteindelijk trefwoorden in Java al besproken. Laten we nu wat licht werpen op het laatste trefwoord van de drie, namelijk het trefwoord in Java afronden.

Finaliseer de methode

Finaliseren is een beschermde niet-statische methode die is gedefinieerd in de klasse Object en dus beschikbaar is voor alle objecten in Java.Deze methode isopgeroepen door de garbage collector voordat een object volledig is vernietigd.Zoals soms,een moet mogelijk een belangrijke taak voltooien, zoals het sluiten van een open verbinding, het vrijmaken van een bron, enz. voordat deze wordt vernietigd. Als deze taken niet worden uitgevoerd, kan dit de efficiëntie van het programma verminderen. Dus degarbage collector noemt het voor de objecten waarnaar niet meer wordt verwezen en die zijn gemarkeerd voor garbage collection.

Deze methode wordt als beschermd verklaard om het gebruik van buiten de klasse te beperken. Maar u kunt het vanuit de klasse overschrijven om de eigenschappen ervan op het moment van garbage collection te definiëren.

voordelen van jQuery ten opzichte van javascript

Laten we een voorbeeld van hetzelfde bekijken.

public class A {public void finalize () gooit Throwable {System.out.println ('Object wordt vernietigd door de Garbage Collector')} public static void main (String [] args) {Edureka test = new Edureka () test = null System.gc ()}}

Hiermee komen we aan het einde van dit artikel over final, eindelijk en finaliseren in Java. Om dit af te sluiten, heb ik een vergelijking tussen alle drie de trefwoorden toegevoegd, die u zal helpen om de belangrijkste verschillen in één oogopslag te zien.

Vergelijkingstabel - Finale versus eindelijk versus Finale trefwoorden in Java

Factor Laatste Tenslotte Afronden
Definitie Final is een trefwoord en wordt gebruikt als toegangsmodificator in JavaEindelijk is een blok in Java dat wordt gebruikt voor het afhandelen van uitzonderingenFinaliseren is een methode in Java die wordt gebruikt voor Garbage Collection
Toepassing Final in Java wordt gebruikt met variabelen, methoden en klassen om toegangsrechten in te stellenTen slotte wordt block gebruikt in combinatie met een try and catch-blokDe afrondingsmethode in Java wordt gebruikt met objecten die niet langer in gebruik zijn
Functie De laatste variabele in Java is een constante waarvan de waarde niet kan worden gewijzigd nadat deze is toegewezen.

De uiteindelijke methode in Java kan niet worden overschreven door de onderliggende klassen.

De laatste klasse in Java kan door geen enkele onderliggende klasse worden overgenomen.

Ten slotte helpt block in Java bij het opschonen van de bronnen die zijn gebruikt in het try-blokDe methode Finalize helpt bij het opruimen van het object voordat het wordt vernietigd door de garbage collector
Executie Het wordt uitgevoerd wanneer het wordt aangeroepen door de compilerWordt direct uitgevoerd na het uitvoeren van het try-catch-blokHet wordt uitgevoerd net voordat een object wordt vernietigd

Ik hoop dat ik door middel van deze Final, Final en Finalize in Java de concepten heb kunnen verduidelijken en je heb geholpen bij het toevoegen van waarde aan je kennis.

Als je dit artikel hebt gevonden over “Finaal, eindelijk en voltooi in Java ' relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. Heeft u een vraag voor ons? Gelieve dit te vermelden in het commentaargedeelte hiervan Final, Final en Finalize in Java en we nemen zo snel mogelijk contact met u op.