top 50 core java interview questions
Meest gestelde vragen en antwoorden over Java-interviews met voorbeelden:
In deze tutorial hebben we bijna 50+ belangrijke Java-interviewvragen voor eerstejaars en ervaren kandidaten behandeld.
Dit bericht over JAVA Interview Vragen is opgesteld om u te helpen de basisconcepten van Java-programmeren voor interviewdoeleinden te begrijpen. Alle belangrijke JAVA-concepten worden hier uitgelegd met voorbeelden zodat u ze gemakkelijk kunt begrijpen.
Deze tutorial behandelt JAVA-onderwerpen zoals elementaire Java-definities, OOP-concepten, toegangsspecificaties, verzamelingen, uitzonderingen, discussies, serialisering, enz., Met voorbeelden om u perfect voor te bereiden om elk JAVA-interview met vertrouwen tegemoet te treden.
Meest populaire Java-interviewvragen en antwoorden
Hieronder vindt u een uitgebreide lijst met de belangrijkste en meest gestelde basisvragen en vragen over geavanceerde Java-programmeerinterviews met gedetailleerde antwoorden.
Q # 1) Wat is JAVA?
Antwoord: Java is een programmeertaal op hoog niveau en is platformonafhankelijk.
Java is een verzameling objecten. Het is ontwikkeld door Sun Microsystems. Er zijn veel applicaties, websites en games die met Java zijn ontwikkeld.
Q # 2) Wat zijn de kenmerken van JAVA?
Antwoord: kenmerken van Java zijn als volgt:
- OOP-concepten
- Objectgeoriënteerd
- Erfenis
- Inkapseling
- Polymorfisme
- Abstractie
- Platform onafhankelijk: Een enkel programma werkt op verschillende platforms zonder enige wijziging.
- Hoge performantie: JIT (Just In Time-compiler) maakt hoge prestaties in Java mogelijk. JIT converteert de bytecode naar machinetaal en vervolgens start JVM de uitvoering.
- Meerdradig: Een executiestroom staat bekend als een draad. JVM maakt een thread die de hoofdthread wordt genoemd. De gebruiker kan meerdere threads maken door de threadklasse uit te breiden of door de Runnable-interface te implementeren.
V # 3) Hoe maakt Java hoge prestaties mogelijk?
Antwoord: Java gebruikt Just In Time-compiler om hoge prestaties mogelijk te maken. Het wordt gebruikt om de instructies in bytecodes om te zetten.
V # 4) Noem de Java IDE's?
Antwoord: Eclipse en NetBeans zijn de IDE's van JAVA.
V # 5) Wat bedoel je met Constructor?
Antwoord: Constructor kan in detail worden uitgelegd met aangeworven punten:
- Wanneer een nieuw object in een programma wordt gemaakt, wordt een constructor aangeroepen die overeenkomt met de klasse.
- De constructor is een methode die dezelfde naam heeft als de klassenaam.
- Als een gebruiker niet impliciet een constructor maakt, wordt er impliciet een standaardconstructor gemaakt.
- De constructor kan worden overbelast.
- Als de gebruiker een constructor met een parameter heeft gemaakt, moet hij expliciet een andere constructor zonder parameter maken.
V # 6) Wat wordt bedoeld met de lokale variabele en de instantievariabele?
Antwoord:
Lokale variabelen worden gedefinieerd in de methode en het bereik van de variabelen die binnen de methode zelf bestaan.
Instancevariabele wordt gedefinieerd binnen de klasse en buiten de methode en het bereik van de variabelen bestaat door de klasse heen.
V # 7) Wat is een klas?
Antwoord: Alle Java-codes zijn gedefinieerd in een klasse. Het heeft variabelen en methoden.
Variabelen zijn attributen die de toestand van een klasse bepalen.
Methoden zijn de plek waar de exacte bedrijfslogica moet worden gedaan. Het bevat een reeks verklaringen (of) instructies om aan de specifieke vereiste te voldoen.
Voorbeeld:
V # 8) Wat is een object?
Antwoord: Een instantie van een klasse wordt een object genoemd. Het object heeft staat en gedrag.
Elke keer dat de JVM het sleutelwoord “new ()” leest, zal het een instantie van die klasse creëren.
Voorbeeld:
De bovenstaande code maakt het object voor de klasse Addition.
V # 9) Wat zijn de OOP-concepten?
Antwoord: OOPs-concepten omvatten:
- Erfenis
- Inkapseling
- Polymorfisme
- Abstractie
- Koppel
Voorgesteld lezen = >> Top OOPs interviewvragen
V # 10) Wat is erfenis?
Antwoord: Overerving betekent dat de ene klasse kan worden uitgebreid naar een andere klasse. Zodat de codes kunnen worden hergebruikt van de ene klas naar de andere. De bestaande klasse staat bekend als de Super-klasse, terwijl de afgeleide klasse bekend staat als een subklasse.
Voorbeeld:
Overerving is alleen van toepassing op het publiek en alleen beschermde leden. Privéleden kunnen niet worden overgenomen.
V # 11) Wat is inkapseling?
Antwoord: doel van inkapseling:
- Beschermt de code tegen anderen.
- Onderhoudbaarheid van de code.
Voorbeeld:
We declareren ‘a’ als een integer-variabele en deze mag niet negatief zijn.
Als iemand de exacte variabele verandert als ' a = -5 ' dan is het slecht.
Om het probleem op te lossen, moeten we de onderstaande stappen volgen:
- We kunnen de variabele privé of beschermd maken.
- Gebruik openbare accessormethoden zoals set en get.
Zodat de bovenstaande code kan worden gewijzigd als:
De onderstaande code toont de getter en setter.
Voorwaarden kunnen worden opgegeven bij het instellen van de variabele.
Voor inkapseling moeten we alle instantievariabelen privé maken en setter en getter voor die variabelen maken. Wat op zijn beurt anderen zal dwingen de setters te bellen in plaats van rechtstreeks toegang te krijgen tot de gegevens.
Vraag 12) Wat is polymorfisme?
Antwoord: Polymorfisme betekent vele vormen.
Een enkel object kan verwijzen naar de superklasse of subklasse, afhankelijk van het referentietype dat polymorfisme wordt genoemd.
Voorbeeld:
Met behulp van het referentietype Manipulatie kunnen we de Addition class 'add ()' - methode aanroepen. Dit vermogen staat bekend als polymorfisme. Polymorfisme is van toepassing op overheersend en niet voor overbelasting
V # 13) Wat wordt bedoeld met het overschrijven van methoden?
Antwoord: Methode overschrijven gebeurt als de subklassemethode voldoet aan de onderstaande voorwaarden met de superklasse-methode:
- De naam van de methode moet hetzelfde zijn
- Het argument zou hetzelfde moeten zijn
- Het retourtype moet ook hetzelfde zijn
Het belangrijkste voordeel van overschrijven is dat de subklasse wat specifieke informatie over dat subklassetype kan bieden dan de superklasse.
Voorbeeld:
addition.add () methode roept de add () methode in de subklasse aan en niet de bovenliggende klasse. Het overschrijft dus de Superklasse-methode en staat bekend als Method Overriding.
V # 14) Wat wordt bedoeld met overbelasting?
Antwoord: Overbelasting van de methode vindt plaats voor verschillende klassen of binnen dezelfde klasse.
Voor overbelasting van de methode moet de subklasse-methode aan de onderstaande voorwaarden voldoen met de Super-class-methode (of) methoden in dezelfde klasse zelf:
- Dezelfde methode naam
- Verschillende soorten argumenten
- Er kunnen verschillende soorten retourneringen zijn
Voorbeeld:
Hier heeft de methode add () verschillende parameters in de klasse Addition wordt overbelast in dezelfde klasse als bij de superklasse.
Opmerking: Polymorfisme is niet van toepassing op overbelasting van de methode.
V # 15) Wat wordt bedoeld met interface?
Antwoord: Meerdere overervingen kunnen niet worden bereikt in Java. Om dit probleem op te lossen wordt het Interface-concept geïntroduceerd.
Een interface is een sjabloon met alleen methode-declaraties en niet de methode-implementatie.
Voorbeeld:
- Alle methoden in de interface zijn intern openbare abstracte leegte
- Alle variabelen in de interface zijn intern openbare statische finale dat zijn constanten.
- Klassen kunnen de interface implementeren en niet uitbreiden.
- De klasse die de interface implementeert, moet een implementatie bieden voor alle methoden die in de interface zijn gedeclareerd.
V # 16) Wat wordt bedoeld met abstracte klasse?
Antwoord: We kunnen de klasse Abstract maken door het trefwoord 'Abstract' voor de naam van de klasse te gebruiken. Een abstracte klasse kan zowel 'abstracte' methoden als 'niet-abstracte' methoden hebben die een concrete klasse zijn.
Abstracte methode:
De methode die alleen de declaratie heeft en niet de implementatie, wordt de abstracte methode genoemd en heeft het trefwoord 'abstract'. Verklaringen eindigen met een puntkomma.
Voorbeeld:
- Een abstracte klasse kan ook een niet-abstracte methode hebben.
- De concrete subklasse die de klasse Abstract uitbreidt, zou de implementatie voor abstracte methoden moeten bieden.
V # 17) Verschil tussen array- en arraylijst.
Antwoord: Het verschil tussen Array en Array List kan worden afgeleid uit de onderstaande tabel:
Array | Array lijst |
---|---|
Grootte moet worden opgegeven op het moment van array-declaratie. String [] name = nieuwe string [2] | Maat is mogelijk niet vereist. Het verandert de grootte dynamisch. ArrayList name = nieuwe ArrayList |
Om een object in een array te plaatsen, moeten we de index specificeren. name [1] = 'boek' | Geen index vereist. name.add ('boek') |
Array heeft geen parameters voor het type | ArrayList in java 5.0 zijn geparametriseerd. Bijv .: Deze punthaak is een typeparameter die een lijst met String betekent. |
Vraag 18) Verschil tussen String, String Builder en String Buffer.
Antwoord:
Draad: Stringvariabelen worden opgeslagen in een 'constant string pool'. Zodra de stringverwijzing de oude waarde wijzigt die bestaat in de 'constant string pool', kan deze niet worden gewist.
Voorbeeld:
String name = 'boek';
Constante stringpool
Als de naamwaarde is veranderd van 'boek' naar 'pen'.
Constante stringpool
Dan blijft de oudere waarde in de constante stringpool.
String Buffer:
- Hier worden stringwaarden opgeslagen in een stapel. Als de waarden worden gewijzigd, vervangt de nieuwe waarde de oudere waarde.
- De stringbuffer is gesynchroniseerd, wat thread-safe is.
- De prestaties zijn langzamer dan de String Builder.
Voorbeeld:
String Buffer naam = ”boek”;
Zodra de naamwaarde is gewijzigd in 'pen', wordt het 'boek' in de stapel gewist.
String Builder:
Dit is hetzelfde als String Buffer, behalve de String Builder, die niet veilig is verbonden en niet is gesynchroniseerd. De uitvoering is dus duidelijk snel.
V # 19) Leg uit over openbare en particuliere toegangsspecificaties.
Antwoord: Methoden en instantievariabelen staan bekend als leden.
Openbaar:
Openbare leden zijn zichtbaar in hetzelfde pakket, evenals het buitenpakket dat voor andere pakketten is.
Openbare leden van Klasse A zijn zichtbaar voor Klasse B (hetzelfde pakket) en Klasse C (verschillende pakketten).
Privaat:
Privé-leden zijn alleen zichtbaar in dezelfde klas en niet voor de andere klassen in hetzelfde pakket en ook voor klassen in de buitenpakketten.
Privé-leden in klasse A zijn alleen zichtbaar in die klas. Het is onzichtbaar voor zowel klasse B als klasse C.
V # 20) Verschil tussen standaard- en beschermde toegangsspecificaties.
Antwoord:
Standaard: Methoden en variabelen die in een klasse zijn gedeclareerd zonder enige toegangsspecificatie, worden standaard genoemd.
Standaardleden in Klasse A zijn zichtbaar voor de andere klassen die zich in het pakket bevinden en onzichtbaar voor de klassen die zich buiten het pakket bevinden.
Dus Klasse A-leden zijn zichtbaar voor Klasse B en onzichtbaar voor Klasse C.
Beschermd:
Beschermd is hetzelfde als Standaard, maar als een klasse zich uitbreidt, is deze zichtbaar, zelfs als deze zich buiten het pakket bevindt.
Klasse A-leden zijn zichtbaar voor Klasse B omdat deze zich in de verpakking bevindt. Voor Klasse C is het onzichtbaar, maar als Klasse C Klasse A uitbreidt, zijn de leden zichtbaar voor Klasse C, zelfs als deze zich buiten het pakket bevindt.
mp3-muziek downloaden gratis top-app
Q # 21) Verschil tussen HashMap en HashTable.
Antwoord: Het verschil tussen HashMap en HashTable is hieronder te zien:
Hash kaart | HashTable |
---|---|
Methoden zijn niet gesynchroniseerd | De belangrijkste methoden zijn gesynchroniseerd |
Geen draadveiligheid | Draad veiligheid |
Iterator wordt gebruikt om de waarden te herhalen | Enumerator wordt gebruikt om de waarden te herhalen |
Staat één null-sleutel en meerdere null-waarden toe | Staat niets toe dat null is |
De prestaties zijn hoog dan bij HashTable | De prestaties zijn traag |
Q # 22) Verschil tussen HashSet en TreeSet.
Antwoord: Het verschil tussen HashSet en TreeSet is hieronder te zien:
HashSet | TreeSet |
---|---|
Ingevoegde elementen zijn in willekeurige volgorde | Behoudt de elementen in de gesorteerde volgorde |
Kan null-objecten opslaan | Kan geen null-objecten opslaan |
De prestaties zijn snel | De prestaties zijn traag |
Q # 23) Verschil tussen abstracte klasse en interface.
Antwoord: De verschillen tussen Abstract Class en Interface zijn als volgt:
Abstracte klasse:
- Abstracte klassen hebben een standaardconstructor en deze wordt aangeroepen wanneer de concrete subklasse wordt geïnstantieerd.
- Het bevat zowel abstracte methoden als niet-abstracte methoden.
- De klasse die de klasse Abstract uitbreidt, zou niet de implementatie van alle methoden moeten vereisen, alleen abstracte methoden hoeven in de concrete subklasse te worden geïmplementeerd.
- Abstracte klasse bevat instantievariabelen.
Koppel:
- Het heeft geen constructor en kan niet worden geïnstantieerd.
- Alleen de abstracte methode moet worden gedeclareerd.
- Klassen die de interface implementeren, moeten de implementatie voor alle methoden bieden.
- De interface bevat alleen constanten.
Q # 24) Wat is de betekenis van collecties in Java?
Antwoord: Collectie is een raamwerk dat is ontworpen om de objecten op te slaan en het ontwerp te manipuleren om de objecten op te slaan.
Collecties worden gebruikt om de volgende bewerkingen uit te voeren:
- Zoeken
- Sorteren
- Manipulatie
- Invoeging
- Verwijdering
Een groep objecten wordt verzamelingen genoemd. Alle klassen en interfaces voor het verzamelen zijn beschikbaar in het Java-util-pakket.
V # 25) Wat zijn alle klassen en interfaces die beschikbaar zijn in de collecties?
Antwoord: Hieronder staan de klassen en interfaces die beschikbaar zijn in collecties:
Interfaces:
- Verzameling
- Lijst
- Set
- Kaart
- Gesorteerde set
- Gesorteerde kaart
- Wachtrij
Klassen:
- Lijsten:
- Array lijst
- Vector
- Gekoppelde lijst
Sets:
- Hash ingesteld
- Gekoppelde hash-set
- Boomset
Kaarten:
- Hash kaart
- Hash-tabel
- TreeMap
- Gekoppelde gehashte kaart
Wachtrij:
- Prioriteits-rij
V # 26) Wat wordt bedoeld met geordend en gesorteerd in verzamelingen?
Antwoord:
Besteld: Dit betekent dat de waarden die in een verzameling zijn opgeslagen, zijn gebaseerd op de waarden die aan de verzameling worden toegevoegd. We kunnen de waarden uit de verzameling dus in een specifieke volgorde herhalen.
Gesorteerd: Sorteermechanismen kunnen intern of extern worden toegepast, zodat de groep objecten die in een bepaalde collectie wordt gesorteerd, gebaseerd is op de eigenschappen van de objecten.
V # 27) Leg de verschillende lijsten uit die in de collectie beschikbaar zijn.
Antwoord: Waarden die aan de lijst worden toegevoegd, zijn gebaseerd op de indexpositie en worden gerangschikt op indexpositie. Duplicaten zijn toegestaan.
De soorten lijsten zijn:
a) Array-lijst:
- Snelle iteratie en snelle willekeurige toegang.
- Het is een geordende verzameling (op index) en niet gesorteerd.
- Het implementeert de Random Access Interface.
Voorbeeld:
Uitgang:
[Appel, kers, kiwi, banaan, kers]
Vanaf de uitvoer behoudt Array List de invoegvolgorde en accepteert de duplicaten. Maar het is niet gesorteerd.
b) Vector:
Het is hetzelfde als Array List.
- Vectormethoden worden gesynchroniseerd.
- Draad veiligheid.
- Het implementeert ook willekeurige toegang.
- Draadveiligheid veroorzaakt meestal een prestatiehit.
Voorbeeld:
Uitgang:
[kers, appel, banaan, kiwi, appel]
Vector handhaaft ook de invoegvolgorde en accepteert de duplicaten.
c) Gelinkte lijst:
- Elementen zijn dubbel met elkaar verbonden.
- De prestaties zijn langzamer dan de Array-lijst.
- Goede keuze voor invoegen en verwijderen.
- In Java 5.0 ondersteunt het veelgebruikte wachtrij-methoden peek (), Pool (), Offer () etc.
Voorbeeld:
Uitgang:
[banaan, kers, appel, kiwi, banaan]
Behoudt de invoegvolgorde en accepteert de duplicaten.
V # 28) Leg uit over Set en hun typen in een verzameling.
Antwoord: Set geeft om uniekheid. Het staat geen duplicaties toe. Hier wordt de 'equals ()' - methode gebruikt om te bepalen of twee objecten identiek zijn of niet.
a) Hash-set:
- Ongeordend en ongesorteerd.
- Gebruikt de hash-code van het object om de waarden in te voegen.
- Gebruik dit als de vereiste is 'geen duplicaten en geef niet om de bestelling'.
Voorbeeld:
Uitgang:
[banaan, kers, kiwi, appel]
Het volgt geen enkele invoegopdracht. Duplicaten zijn niet toegestaan.
b) Gekoppelde hash-set:
- Een geordende versie van de hash-set staat bekend als Linked Hash Set.
- Houdt een dubbelgekoppelde lijst bij van alle elementen.
- Gebruik dit wanneer een iteratie-volgorde vereist is.
Voorbeeld:
Uitgang:
[banaan, kers, appel, kiwi]
Het handhaaft de volgorde waarin ze aan de set zijn toegevoegd. Duplicaten zijn niet toegestaan.
c) Boomset:
- Het is een van de twee gesorteerde collecties.
- Gebruikt de 'Read-Black' -boomstructuur en garandeert dat de elementen in oplopende volgorde zullen zijn.
- We kunnen een boomset maken met de constructor door een vergelijkbare (of) comparator te gebruiken.
Voorbeeld:
Uitgang:
[appel, banaan, kers, kiwi]
TreeSet sorteert de elementen in oplopende volgorde. En duplicaten zijn niet toegestaan.
Vraag 29) Leg uit over de kaart en zijn typen.
Antwoord: kaart geeft om de unieke identificatie. We kunnen een unieke sleutel toewijzen aan een specifieke waarde. Het is een sleutel / waarde-paar. We kunnen een waarde zoeken op basis van de sleutel. Net als de set gebruikt de map ook de 'equals ()' - methode om te bepalen of twee sleutels hetzelfde of verschillend zijn.
Kaart is van de volgende typen:
a) Hash-kaart:
- Ongeordende en ongesorteerde kaart.
- Hashmap is een goede keuze als de bestelling ons niet kan schelen.
- Het staat één null-sleutel en meerdere null-waarden toe.
Voorbeeld:
Uitgang:
{key2 = banaan, key1 = cherry, key4 = kiwi, key3 = appel}
Dubbele sleutels zijn niet toegestaan in Map.
Het handhaaft geen invoegvolgorde en is ongesorteerd.
b) Hash-tabel:
- Net als de vectorsleutel worden de methoden van de klasse gesynchroniseerd.
- Draadveiligheid en vertraagt daarom de prestatie.
- Het staat niets toe dat nul is.
Voorbeeld:
Uitgang:
{key2 = appel, key1 = kers, key4 = kiwi, key3 = banaan}
Dubbele sleutels zijn niet toegestaan.
c) Gekoppelde hash-kaart:
- Handhaaft de invoegopdracht.
- Langzamer dan hash-kaart.
- Ik kan een snellere iteratie verwachten.
Voorbeeld:
Uitgang:
{key2 = appel, key1 = kers, key4 = kiwi, key3 = banaan}
Dubbele sleutels zijn niet toegestaan.
d) TreeMap:
- Gesorteerde kaart.
- Net als Tree-set kunnen we een sorteervolgorde construeren met de constructor.
Voorbeeld:
Uitgang:
{key1 = cherry, key2 = banaan, key3 = appel, key4 = kiwi}
Het wordt in oplopende volgorde gesorteerd op basis van de sleutel. Dubbele sleutels zijn niet toegestaan.
V # 30) Leg de prioriteitswachtrij uit.
Antwoord: wachtrij-interface
Prioriteits-rij: Gekoppelde lijstklasse is verbeterd om de wachtrijinterface te implementeren. Wachtrijen kunnen worden afgehandeld met een gekoppelde lijst. Het doel van een wachtrij is 'Priority-in, Priority-out'.
Daarom worden de elementen ofwel natuurlijk ofwel volgens de vergelijker geordend. De volgorde van de elementen vertegenwoordigt hun relatieve prioriteit.
V # 31) Wat wordt bedoeld met uitzondering?
Antwoord: Een uitzondering is een probleem dat kan optreden tijdens de normale uitvoering. Een methode kan een uitzondering genereren als er iets huilt tijdens runtime. Als die uitzondering niet kon worden afgehandeld, wordt de uitvoering beëindigd voordat de taak is voltooid.
Als we de uitzondering hebben afgehandeld, wordt de normale stroom voortgezet. Uitzonderingen zijn een subklasse van java.lang.Exception.
Voorbeeld voor het afhandelen van uitzondering:
V # 32) Wat zijn de soorten uitzonderingen?
Antwoord: Er zijn twee soorten uitzonderingen. Ze worden hieronder in detail uitgelegd.
a) Gecontroleerde uitzondering:
Deze uitzonderingen worden gecontroleerd door de compiler op het moment van compilatie. Klassen die de Throwable-klasse uitbreiden, behalve Runtime-uitzondering en Error, worden gecontroleerde uitzondering genoemd.
Aangevinkte uitzonderingen moeten ofwel de uitzondering declareren met het throws-trefwoord (of) omgeven door de juiste try / catch.
Bijvoorbeeld, ClassNotFound uitzondering
b) Niet aangevinkte uitzondering:
Deze uitzonderingen worden niet gecontroleerd tijdens het compileren door de compiler. De compiler dwingt deze uitzonderingen niet af. Het bevat:
- Rekenkundige uitzondering
- ArrayIndexOutOfBounds uitzondering
V # 33) Wat zijn de verschillende manieren om met uitzonderingen om te gaan?
Antwoord: Hieronder worden twee verschillende manieren uitgelegd om met uitzonderingen om te gaan:
a) Try / catch gebruiken:
De riskante code is omgeven door een try-blok. Als er een uitzondering optreedt, wordt deze opgevangen door het catch-blok dat wordt gevolgd door het try-blok.
Voorbeeld:
b) Door het worp-trefwoord te declareren:
Aan het einde van de methode kunnen we de uitzondering declareren met het worp-trefwoord.
Voorbeeld:
V # 34) Wat zijn de voordelen van het afhandelen van uitzonderingen?
c ++ selectie sorteeralgoritme
Antwoord: De voordelen zijn als volgt:
- De normale uitvoering van de uitvoering wordt niet beëindigd als een uitzondering wordt afgehandeld
- We kunnen het probleem identificeren door middel van vangstaangiften
V # 35) Wat zijn de uitzonderingen voor het afhandelen van sleutelwoorden in Java?
Antwoord: Hieronder staan de twee trefwoorden voor het afhandelen van uitzonderingen:
een poging:
Wanneer een riskante code is omgeven door een try-blok. Een uitzondering die optreedt in het try-blok, wordt opgevangen door een catch-blok. Try kan gevolgd worden door catch (of) eindelijk (of) beide. Maar elk van de blokken is verplicht.
b) vangst:
Dit wordt gevolgd door een try-blok. Uitzonderingen worden hier opgevangen.
c) tot slot:
Dit wordt gevolgd door ofwel try block (of) catch block. Dit blok wordt ongeacht een uitzondering uitgevoerd. Dus over het algemeen worden hier opruimcodes gegeven.
V # 36) Leg uit over het verspreiden van uitzonderingen.
Antwoord: Uitzondering wordt eerst geworpen van de methode die bovenaan de stapel staat. Als het niet pakt, wordt de methode weergegeven en gaat het naar de vorige methode enzovoort totdat ze zijn gevonden.
Dit wordt de voortplanting van uitzonderingen genoemd.
Voorbeeld:
Uit het bovenstaande voorbeeld ziet de stapel eruit zoals hieronder weergegeven:
Als er een uitzondering optreedt in het toevoeging () methode niet wordt opgevangen, dan gaat het naar de methode toevoegen() Vervolgens wordt het verplaatst naar het hoofd() methode en dan zal het de stroom van uitvoering stoppen. Het heet Uitzonderingsvermeerdering.
V # 37) Wat is het laatste sleutelwoord in Java?
Antwoord:
Variabel einde: Zodra een variabele als definitief is gedeclareerd, kan de waarde van de variabele niet worden gewijzigd. Het is als een constante.
Voorbeeld:
laatste int = 12;
Laatste methode: Een laatste zoekwoord in een methode kan niet worden overschreven. Als een methode is gemarkeerd als definitief, kan deze niet worden overschreven door de subklasse.
Laatste klasse: Als een klasse als definitief wordt verklaard, kan de klasse niet worden onderverdeeld. Geen enkele klas kan de laatste klas verlengen.
V # 38) Wat is een discussie?
Antwoord: In Java wordt de uitvoeringsstroom Thread genoemd. Elk Java-programma heeft ten minste één thread die de hoofdthread wordt genoemd, de hoofdthread is gemaakt door JVM. De gebruiker kan zijn eigen threads definiëren door de Thread-klasse (of) uit te breiden door de Runnable-interface te implementeren. Threads worden gelijktijdig uitgevoerd.
Voorbeeld:
Q # 39) Hoe maak je een thread in Java?
Antwoord: Er zijn twee manieren om een thread te maken.
a) Draadklasse uitbreiden: Een Thread-klasse uitbreiden en de run-methode overschrijven. De thread is beschikbaar in java.lang.thread.
Voorbeeld:
Het nadeel van het gebruik van een threadklasse is dat we geen andere klassen kunnen uitbreiden omdat we de threadklasse al hebben uitgebreid. We kunnen de run () -methode in onze klas overbelasten.
b) Implementeer een uitvoerbare interface: Een andere manier is door de uitvoerbare interface te implementeren. Daarvoor moeten we de implementatie voor de run () -methode leveren die in de interface is gedefinieerd.
Voorbeeld:
V # 40) Leg uit over de methode join ().
Antwoord: De methode Join () wordt gebruikt om een thread samen te voegen met het einde van de momenteel lopende thread.
Voorbeeld:
Op basis van de bovenstaande code is de hoofdthread de uitvoering gestart. Wanneer het de code bereikt t.start () dan start ‘thread t’ de eigen stapel voor de uitvoering. JVM schakelt tussen de hoofdthread en ‘thread t’.
Zodra het de code bereikt t.join () dan wordt alleen ‘thread t’ uitgevoerd en voltooit zijn taak, dan start alleen de hoofdthread de uitvoering.
Het is een niet-statische methode. De methode Join () heeft een overbelaste versie. We kunnen dus de tijdsduur in de methode join () ook “.s” noemen.
V # 41) Wat doet de opbrengstmethode van de klasse Thread?
Antwoord: Een yield () - methode verplaatst de momenteel lopende thread naar een uitvoerbare status en laat de andere threads uitvoeren. Zodat threads met dezelfde prioriteit de kans krijgen om te worden uitgevoerd. Het is een statische methode. Het ontgrendelt geen enkele vergrendeling.
De methode Yield () verplaatst de thread alleen terug naar de status Runnable en niet de thread naar sleep (), wait () (of) blok.
Voorbeeld:
V # 42) Leg uit over de methode wait ().
Antwoord: wacht () methode wordt gebruikt om de thread te laten wachten in de wachtpool. Wanneer de methode wait () wordt uitgevoerd tijdens het uitvoeren van een thread, geeft de thread onmiddellijk de vergrendeling van het object op en gaat naar de wachtende pool. Wait () methode vertelt de thread om een bepaalde tijd te wachten.
Vervolgens wordt de thread wakker nadat de methode notification () (of) de notificatie all () is aangeroepen.
Wait () en de andere bovengenoemde methoden geven het object niet onmiddellijk een vergrendeling totdat de momenteel uitgevoerde thread de gesynchroniseerde code heeft voltooid. Het wordt meestal gebruikt bij synchronisatie.
Voorbeeld:
V # 43) Verschil tussen de methode Notificeer () en de methode NotificAll () in Java.
Antwoord: De verschillen tussen de methode Notice () en de methode NoticeAll () worden hieronder vermeld:
melden () | informerenAll () |
---|---|
Deze methode wordt gebruikt om een signaal te sturen om een enkele thread in de wachtende pool wakker te maken. | Deze methode stuurt het signaal om alle threads in een wachtende spoel wakker te maken. |
V # 44) Hoe een thread in Java te stoppen? Leg uit over de sleep () -methode in een thread?
Antwoord: We kunnen een thread stoppen door de volgende threadmethoden te gebruiken:
- Slapen
- Aan het wachten
- Geblokkeerd
Slaap: De methode Sleep () wordt gebruikt om de momenteel uitgevoerde thread gedurende een bepaalde tijd te laten slapen. Zodra de thread is geactiveerd, kan deze naar de uitvoerbare staat gaan. Dus de methode sleep () wordt gebruikt om de uitvoering enige tijd uit te stellen.
Het is een statische methode.
Voorbeeld:
Draad. Slaap (2000)
Dus het vertraagt de draad om 2 milliseconden te slapen. Sleep () methode genereert een ononderbroken uitzondering, daarom moeten we het blok omringen met try / catch.
V # 45) Wanneer gebruik je de Runnable-interface Vs Thread-klasse in Java?
Antwoord: Als we onze klasse nodig hebben om andere klassen dan de thread uit te breiden, kunnen we de uitvoerbare interface gebruiken omdat we in java slechts één klasse kunnen uitbreiden.
Als we geen enkele klasse gaan uitbreiden, kunnen we de threadklasse uitbreiden.
Q # 46) Verschil tussen start () en run () methode van thread class.
Antwoord: De methode Start () maakt een nieuwe thread aan en de code binnen de methode run () wordt in de nieuwe thread uitgevoerd. Als we de methode run () rechtstreeks hebben aangeroepen, wordt er geen nieuwe thread gemaakt en zal de thread die momenteel wordt uitgevoerd, de methode run () blijven uitvoeren.
V # 47) Wat is multi-threading?
Antwoord: Meerdere threads worden tegelijkertijd uitgevoerd. Elke thread begint zijn eigen stapel op basis van de stroom (of) prioriteit van de threads.
Voorbeeldprogramma:
Bij de uitvoering van de eerste regel roept JVM de hoofdmethode aan en de hoofdthread-stapel ziet eruit zoals hieronder weergegeven.
Zodra de executie bereikt, t.start () regel, dan wordt een nieuwe thread gemaakt en wordt ook de nieuwe stapel voor de thread gemaakt. Nu schakelt JVM over naar de nieuwe thread en is de hoofdthread terug in de uitvoerbare staat.
De twee stapels zien eruit zoals hieronder weergegeven.
Nu heeft de gebruikersthread de code uitgevoerd binnen de run () - methode.
Zodra de run () -methode is voltooid, schakelt JVM terug naar de hoofdthread en heeft de gebruikersthread de taak voltooid en is de stapel verdwenen.
JVM schakelt tussen elke thread totdat beide threads zijn voltooid. Dit heet Multi-threading.
Vraag 48) Leg de levenscyclus van de draad in Java uit.
Antwoord: Thread heeft de volgende statussen:
- Nieuw
- Uitvoerbaar
- Rennen
- Niet-uitvoerbaar (geblokkeerd)
- Beëindigd
- Nieuw: In de staat New is een Thread-instantie gemaakt, maar de start () -methode is nog niet aangeroepen. Nu wordt de draad niet als levend beschouwd.
- Uitvoerbaar : De thread bevindt zich in de status uitvoerbaar na het aanroepen van de methode start (), maar voordat de methode run () wordt aangeroepen. Maar een thread kan ook terugkeren naar de uitvoerbare staat vanuit wachten / slapen. In deze toestand wordt de draad als levend beschouwd.
- Rennen : De thread bevindt zich in een actieve status nadat deze de methode run () heeft aangeroepen. Nu begint de thread met de uitvoering.
- Kan niet worden uitgevoerd (Geblokkeerd): de thread leeft, maar kan niet worden uitgevoerd. Het is niet in de uitvoerbare staat, maar zal ook na enige tijd terugkeren naar de uitvoerbare staat. Voorbeeld: wacht, slaap, blokkeer.
- Beëindigd : Zodra de run-methode is voltooid, wordt deze beëindigd. Nu leeft de draad niet.
V # 49) Wat is synchronisatie?
Antwoord: Synchronisatie zorgt ervoor dat slechts één thread tegelijk toegang heeft tot een blok code. Als meerdere threads toegang krijgen tot het codeblok, is er aan het einde kans op onnauwkeurige resultaten. Om dit probleem te voorkomen, kunnen we synchronisatie bieden voor het gevoelige codeblok.
Het gesynchroniseerde sleutelwoord betekent dat een thread een sleutel nodig heeft om toegang te krijgen tot de gesynchroniseerde code.
Sloten zijn per object. Elk Java-object heeft een slot. Een slot heeft maar één sleutel. Een thread heeft alleen toegang tot een gesynchroniseerde methode als de thread de sleutel kan krijgen om de objecten te vergrendelen.
Hiervoor gebruiken we het trefwoord 'Gesynchroniseerd'.
Voorbeeld:
V # 50) Wat is het nadeel van synchronisatie?
Jaren: Synchronisatie wordt niet aanbevolen om alle methoden te implementeren. Omdat als een thread toegang heeft tot de gesynchroniseerde code, de volgende thread zou moeten wachten. Het levert dus een trage prestatie aan de andere kant.
V # 51) Wat wordt bedoeld met serialisering?
Antwoord: Het converteren van een bestand naar een bytestream staat bekend als Serialisatie. De objecten in het bestand worden om veiligheidsredenen geconverteerd naar bytes. Hiervoor hebben we een java.io.Serializable interface nodig. Het heeft geen methode om te definiëren.
Variabelen die als tijdelijk zijn gemarkeerd, maken geen deel uit van de serialisering. We kunnen dus de serialisering voor de variabelen in het bestand overslaan door een tijdelijk trefwoord te gebruiken.
Meer informatie = >> Serialiseerbaar en te klonen
Vraag 52) Wat is het doel van een tijdelijke variabele?
Antwoord: Tijdelijke variabelen maken geen deel uit van het serialisatieproces. Tijdens deserialisatie worden de waarden van de tijdelijke variabelen ingesteld op de standaardwaarde. Het wordt niet gebruikt met statische variabelen.
Voorbeeld:
voorbijgaande int nummers;
V # 53) Welke methoden worden gebruikt tijdens het serialiserings- en deserialiseringsproces?
Antwoord: ObjectOutputStream en ObjectInputStream klassen zijn java.io van een hoger niveau. pakket. We zullen ze gebruiken met de klassen FileOutputStream en FileInputStream op een lager niveau.
ObjectOutputStream.writeObject Serialiseer het object en schrijf het geserialiseerde object naar een bestand.
ObjectInputStream.readObject Leest het bestand en deserialiseert het object.
Om te worden geserialiseerd, moet een object de serialiseerbare interface implementeren. Als superklasse Serializable implementeert, wordt de subklasse automatisch serialiseerbaar.
V # 54) Wat is het doel van een vluchtige variabele?
Antwoord: Waarden van vluchtige variabelen worden altijd gelezen uit het hoofdgeheugen en niet uit het cachegeheugen van de thread. Dit wordt voornamelijk gebruikt tijdens synchronisatie. Het is alleen van toepassing op variabelen.
Voorbeeld:
vluchtig int nummer;
V # 55) Verschil tussen serialisering en deserialisatie in Java.
Antwoord: Dit zijn de verschillen tussen serialisatie en deserialisatie in java:
Serialisatie | Deserialisatie |
---|---|
Serialisatie is het proces dat wordt gebruikt om de objecten om te zetten in bytestromen | Deserialisatie is het tegenovergestelde proces van serialisatie, waarbij we de objecten terug kunnen halen uit de bytestroom. |
Een object wordt geserialiseerd door het een ObjectOutputStream te schrijven. | Een object wordt gedeserialiseerd door het uit een ObjectInputStream te lezen. |
Q # 56) Wat is SerialVersionUID?
Antwoord: Telkens wanneer een object is geserialiseerd, krijgt het object een versie-ID-nummer voor de objectklasse. Deze ID wordt de SerialVersionUID genoemd. Dit wordt gebruikt tijdens deserialisatie om te controleren of de afzender en ontvanger compatibel zijn met de serialisering.
Gevolgtrekking
Dit zijn enkele van de belangrijkste JAVA-interviewvragen die zowel de basis- als geavanceerde Java-concepten voor programmeren en het interview met ontwikkelaars behandelen, en deze zijn beantwoord door onze JAVA-experts.
Ik hoop dat deze tutorial je een goed inzicht zal geven in de JAVA-kerncoderingsconcepten in detail. De bovenstaande uitleg zal uw kennis echt verrijken en uw begrip van JAVA-programmering vergroten.
Maak je klaar om zelfverzekerd een JAVA-interview te kraken.