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:
- Laatste trefwoord
- Eindelijk blokkeren
- Finaliseer de methode
- Vergelijkingstabel - Finaal, eindelijk en finaliseer in Java
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:
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 Java | Eindelijk is een blok in Java dat wordt gebruikt voor het afhandelen van uitzonderingen | Finaliseren 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 stellen | Ten slotte wordt block gebruikt in combinatie met een try and catch-blok | De 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-blok | De 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 compiler | Wordt direct uitgevoerd na het uitvoeren van het try-catch-blok | Het 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.