Top 100 Java-interviewvragen en -antwoorden (download pdf)

Inhoudsopgave:

Anonim

Download PDF

We hebben de meest gestelde Java-interviewvragen en -antwoorden samengesteld die u zullen helpen bij de voorbereiding op de Basic Java-interviewvragen die een interviewer u tijdens uw interview zou kunnen stellen. In deze lijst met Basic Java-interviewvragen hebben we alle veelgestelde basis- en geavanceerde Core Java-interviewvragen behandeld met gedetailleerde antwoorden om u te helpen het sollicitatiegesprek te wissen.

De volgende lijst bevat 100 belangrijke Core Java-interviewvragen voor eerstejaars, evenals Java-interviewvragen en antwoorden voor ervaren programmeurs om hen te helpen bij de voorbereiding op het interview. Deze gedetailleerde gids met interviewvragen voor Java-programmering zal u helpen om uw sollicitatiegesprek gemakkelijk te kraken.

Core Java-interviewvragen en antwoorden voor beginners en ervaren

V1. Wat is het verschil tussen een innerlijke klasse en een subklasse?

Ans: Een innerlijke klasse is een klasse die is genest in een andere klasse. Een innerlijke klasse heeft toegangsrechten voor de klasse die deze nestelt en heeft toegang tot alle variabelen en methoden die in de buitenste klasse zijn gedefinieerd.

Een subklasse is een klasse die erft van een andere klasse, de superklasse. De subklasse heeft toegang tot alle openbare en beschermde methoden en velden van zijn superklasse.

Q2. Wat zijn de verschillende toegangsspecificaties voor Java-klassen?

Ans: In Java zijn toegangsspecificaties de sleutelwoorden die worden gebruikt voor een klassenaam die het toegangsbereik definieert. De soorten toegangsspecificaties voor klassen zijn:

1. Openbaar: klasse, methode, veld is overal toegankelijk.

2. Beveiligd: Methode, Veld is toegankelijk vanuit dezelfde klasse waartoe ze behoren of vanuit de subklassen, en vanuit de klasse van hetzelfde pakket, maar niet van buitenaf.

3. Standaard: Methode, Veld, klasse is alleen toegankelijk vanuit hetzelfde pakket en niet van buiten het oorspronkelijke pakket.

4. Privé: methode, veld is toegankelijk vanuit dezelfde klasse waartoe ze behoren.

Q3. Wat is het doel van statische methoden en statische variabelen?

Ans: Als er een vereiste is om een ​​methode of variabele te delen tussen meerdere objecten van een klasse in plaats van aparte kopieën te maken voor elk object, gebruiken we een statisch sleutelwoord om een ​​methode of variabele te maken die voor alle objecten wordt gedeeld.

V4. Wat is data-inkapseling en wat is de betekenis ervan?

Ans: Encapsulation is een concept in Object Oriented Programming voor het combineren van eigenschappen en methoden in een enkele eenheid.

Encapsulation helpt programmeurs om een ​​modulaire benadering voor softwareontwikkeling te volgen, aangezien elk object zijn eigen set methoden en variabelen heeft en zijn functies onafhankelijk van andere objecten dient. Inkapseling dient ook voor het verbergen van gegevens.

V5. Wat is een singleton-klasse? Geef een praktisch voorbeeld van het gebruik ervan.

Een singleton-klasse in java kan slechts één instantie hebben en daarom behoren al zijn methoden en variabelen tot slechts één instantie. Het Singleton-klasseconcept is handig voor situaties waarin het aantal objecten voor een klasse moet worden beperkt.

Het beste voorbeeld van een singleton-gebruiksscenario is wanneer er een limiet is van slechts één verbinding met een database vanwege een aantal stuurprogramma-beperkingen of vanwege licentieproblemen.

V6. Wat zijn Loops in Java? Wat zijn drie soorten lussen?

Ans: Looping wordt gebruikt bij het programmeren om een ​​instructie of een blok met instructies herhaaldelijk uit te voeren. Er zijn drie soorten loops in Java:

1) Voor lussen

For-lussen worden in java gebruikt om instructies herhaaldelijk uit te voeren voor een bepaald aantal keren. For-lussen worden gebruikt als het aantal keren dat de instructies moeten worden uitgevoerd, bekend is bij de programmeur.

2) While Loops

While-lus wordt gebruikt wanneer bepaalde instructies herhaaldelijk moeten worden uitgevoerd totdat aan een voorwaarde is voldaan. In while-lussen wordt eerst de conditie gecontroleerd voordat instructies worden uitgevoerd.

3) Doe While Loops

Do While Loop is hetzelfde als While Loop, met het enige verschil dat die voorwaarde wordt gecontroleerd na uitvoering van een blok met instructies. Daarom worden in het geval van een do while-lus instructies minstens één keer uitgevoerd.

V7: Wat is een oneindige lus? Hoe oneindige lus wordt gedeclareerd?

Ans: Een oneindige lus loopt zonder enige voorwaarde en loopt oneindig. Een oneindige lus kan worden doorbroken door een breuklogica in de hoofdtekst van de instructieblokken te definiëren.

Oneindige lus wordt als volgt gedeclareerd:

for (;;){// Statements to execute// Add any loop breaking logic}

V8. Wat is het verschil tussen continue en break-statement?

Ans: break en continue zijn twee belangrijke sleutelwoorden die in Loops worden gebruikt. Wanneer een break-sleutelwoord in een lus wordt gebruikt, wordt de lus onmiddellijk verbroken, terwijl wanneer het continue-sleutelwoord wordt gebruikt, de huidige iteratie wordt verbroken en de lus wordt voortgezet met de volgende iteratie.

In het onderstaande voorbeeld wordt de lus verbroken wanneer de teller 4 bereikt.

for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}

In het onderstaande voorbeeld springt de lus naar de volgende iteratie wanneer de teller 4 bereikt en worden alle instructies na het trefwoord continue overgeslagen voor de huidige iteratie.

for (counter = 0; counter < 10; counter++)system.out.println(counter);if (counter == 4) {continue;}system.out.println("This will not get printed when counter is 4");}

V9. Wat is het verschil tussen dubbele en zwevende variabelen in Java?

Ans: In Java neemt float 4 bytes aan geheugen in beslag, terwijl Double 8 bytes aan geheugen in beslag neemt. Float is een decimaal getal met een enkele precisie met drijvende komma, terwijl Double een decimaal getal met een dubbele precisie is.

V10. Wat is het laatste trefwoord in Java? Geef een voorbeeld.

Ans: In java wordt een constante gedeclareerd met het sleutelwoord Final. De waarde kan slechts één keer worden toegewezen en na toewijzing kan de waarde van een constante niet worden gewijzigd.

In onderstaand voorbeeld wordt een constante met de naam const_val gedeclareerd en een waarde toegewezen:

Private Final int const_val = 100

Wanneer een methode als definitief wordt gedeclareerd, kan deze NIET worden overschreven door de subklassen. Deze methode is sneller dan elke andere methode, omdat ze op het juiste moment worden opgelost.

Wanneer een klasse als definitief wordt verklaard, kan deze niet worden onderverdeeld. Voorbeeld String, Integer en andere wrapper-klassen.

V11. Wat is een ternaire operator? Geef een voorbeeld.

Ans: Ternaire operator, ook wel voorwaardelijke operator genoemd, wordt gebruikt om te beslissen welke waarde aan een variabele moet worden toegewezen op basis van een Booleaanse waarde-evaluatie. Het wordt aangeduid als?

In het onderstaande voorbeeld, als rang 1 is, krijgt status de waarde "Gereed" of "In afwachting" toegewezen.

public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}

Q12: Hoe kun je willekeurige getallen genereren in Java?

Ans:

  • Met Math.random () kunt u willekeurige getallen genereren in het bereik groter dan of gelijk aan 0,1 en kleiner dan 1,0
  • Met behulp van de willekeurige klasse in het pakket java.util

V13. Wat is een standaard schakelkast? Geef voorbeeld.

Ans: In een switch-instructie wordt standaard case uitgevoerd wanneer er geen andere switch-voorwaarde overeenkomt. Het standaardgeval is een optioneel geval. Het kan pas worden gedeclareerd als alle andere schakelkasten zijn gecodeerd.

In het onderstaande voorbeeld, wanneer de score niet 1 of 2 is, wordt het standaardgeval gebruikt.

public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}

V14. Wat is de basisklasse in Java waarvan alle klassen zijn afgeleid?

Ans: java.lang.object

V15. Kan de methode main () in Java gegevens retourneren?

Ans: In java kan de methode main () geen gegevens retourneren en daarom wordt het altijd gedeclareerd met een ongeldig retourtype.

V16. Wat zijn Java-pakketten? Wat is de betekenis van pakketten?

Ans: In Java is een pakket een verzameling klassen en interfaces die zijn gebundeld omdat ze aan elkaar gerelateerd zijn. Het gebruik van pakketten helpt ontwikkelaars om de code te modulariseren en de code te groeperen voor correct hergebruik. Zodra code in pakketten is verpakt, kan deze in andere klassen worden geïmporteerd en gebruikt.

V17. Kunnen we een klasse als abstract declareren zonder een abstracte methode te hebben?

Ans: Ja, we kunnen een abstracte klasse maken door een abstract trefwoord vóór de klassenaam te gebruiken, zelfs als er geen abstracte methode is. Als een klasse echter maar één abstracte methode heeft, moet deze als abstract worden gedeclareerd, anders geeft het een foutmelding.

V18. Wat is het verschil tussen een abstracte klasse en een interface in Java?

Ans: Het belangrijkste verschil tussen een abstracte klasse en een interface is dat een interface alleen een verklaring van openbare statische methoden kan hebben zonder concrete implementatie, terwijl een abstracte klasse leden kan hebben met toegangsspecificaties (openbaar, privé enz.) Met of zonder concrete implementatie.

Een ander belangrijk verschil in het gebruik van abstracte klassen en interfaces is dat een klasse die een interface implementeert, alle methoden van de interface moet implementeren, terwijl een klasse die erft van een abstracte klasse niet alle methoden van zijn superklasse moet implementeren.

Een klasse kan meerdere interfaces implementeren, maar kan slechts één abstracte klasse uitbreiden.

V19. Wat zijn de prestatie-implicaties van interfaces ten opzichte van abstracte klassen?

Ans: Interfaces zijn langzamer in prestatie in vergelijking met abstracte klassen, aangezien er extra indirecte informatie nodig is voor interfaces. Een andere belangrijke factor waarmee ontwikkelaars rekening moeten houden, is dat elke klasse slechts één abstracte klasse kan uitbreiden, terwijl een klasse veel interfaces kan implementeren.

Het gebruik van interfaces vormt ook een extra belasting voor de ontwikkelaars, aangezien elke keer dat een interface in een klasse wordt geïmplementeerd; ontwikkelaar wordt gedwongen om elke interfacemethode te implementeren.

V20. Importeert het importeren van een pakket ook zijn subpakketten in Java?

Ans: In java, wanneer een pakket wordt geïmporteerd, worden de subpakketten ervan niet geïmporteerd en moet de ontwikkelaar ze indien nodig apart importeren.

Als een ontwikkelaar bijvoorbeeld een pakket university. * Importeert, worden alle klassen in het pakket met de naam university geladen, maar worden er geen klassen uit het subpakket geladen. Om de klassen uit zijn subpakket (zeg afdeling) te laden, moet de ontwikkelaar het expliciet als volgt importeren:

Importeer university.department. *

V21. Kunnen we de belangrijkste methode van onze klas als privé beschouwen?

Ans: In java moet de hoofdmethode openbaar statisch zijn om elke applicatie correct te kunnen uitvoeren. Als de hoofdmethode als privé is gedeclareerd, krijgt de ontwikkelaar echter geen compilatiefout, deze wordt niet uitgevoerd en geeft een runtime-fout.

V22. Hoe kunnen we een argument doorgeven aan een functie door middel van verwijzing in plaats van een waarde door te geven?

Ans: In java kunnen we een argument alleen op waarde aan een functie doorgeven en niet op basis van verwijzing.

V23. Hoe wordt een object geserialiseerd in Java?

Ans: Om in java een object om te zetten in bytestream door middel van serialisering, wordt een interface met de naam Serializable geïmplementeerd door de klasse. Alle objecten van een klasse die een serialiseerbare interface implementeren, worden geserialiseerd en hun status wordt in bytestream opgeslagen.

V24. Wanneer moeten we serialisatie gebruiken?

Ans: Serialisatie wordt gebruikt wanneer gegevens over het netwerk moeten worden verzonden. Met behulp van serialisering wordt de status van het object opgeslagen en omgezet in bytestream. De bytestream wordt over het netwerk verzonden en het object wordt op de bestemming opnieuw gemaakt.

V25. Is het verplicht dat een Try Block wordt gevolgd door een Catch Block in Java voor het afhandelen van uitzonderingen?

Ans: Try block moet worden gevolgd door ofwel Catch block, Tenslotte block of beide. Elke uitzondering die wordt gegenereerd door het try-blok, moet ofwel worden opgevangen in het catch-blok, of anders moeten specifieke taken worden uitgevoerd voordat code-abortus in het laatste-blok wordt geplaatst.

V26. Is er een manier om het laatste uitzonderingsblok over te slaan, zelfs als er een uitzondering optreedt in het uitzonderingsblok?

Ans: Als een uitzondering wordt gegenereerd in Try block, gaat de besturing naar catch block als het anders bestaat om uiteindelijk te blokkeren. Eindelijk blok wordt altijd uitgevoerd wanneer er een uitzondering optreedt en de enige manier om uitvoering van enige instructies in het blok Eindelijk te vermijden, is door de code geforceerd af te breken door de volgende regel code aan het einde van het blok try te schrijven:

System.exit(0);

V27. Wanneer de constructor van een klasse wordt aangeroepen?

Ans: De constructor van een klasse wordt aangeroepen elke keer dat een object wordt gemaakt met een nieuw sleutelwoord.

In de volgende klasse worden bijvoorbeeld twee objecten gemaakt met een nieuw trefwoord en daarom wordt de constructor twee keer aangeroepen.

public class const_example {const_example() {system.out.println("Inside constructor");}public static void main(String args[]) {const_example c1 = new const_example();const_example c2 = new const_example();}}

V28. Kan een klasse meerdere constructors hebben?

Ans: Ja, een klasse kan meerdere constructors hebben met verschillende parameters. Welke constructor wordt gebruikt voor het maken van objecten, hangt af van de argumenten die worden doorgegeven tijdens het maken van de objecten.

V29. Kunnen we statische methoden van een klasse negeren?

Ans: We kunnen statische methoden niet negeren. Statische methoden behoren tot een klasse en niet tot individuele objecten en worden opgelost op het moment van compilatie (niet tijdens runtime) .Zelfs als we proberen de statische methode te overschrijven, krijgen we geen complementaire fout, noch de impact van overschrijven bij het uitvoeren van de code.

V30. Wat zal in het onderstaande voorbeeld de output zijn?

public class superclass {public void displayResult() {system.out.println("Printing from superclass");}}public class subclass extends superclass {public void displayResult() {system.out.println("Displaying from subClass");super.displayResult();}public static void main(String args[]) {subclass obj = new subclass();obj.displayResult();}}

Ans : Output zal zijn:

Weergeven vanuit een subklasse

Weergeven uit superklasse

V31. Is String een gegevenstype in Java?

Ans: String is geen primitief gegevenstype in Java. Wanneer een tekenreeks in Java wordt gemaakt, wordt het in feite een object van de klasse Java.Lang.String gemaakt. Nadat dit string-object is gemaakt, kunnen alle ingebouwde methoden van de String-klasse worden gebruikt voor het string-object.

V32. Hoeveel String-objecten worden er in het onderstaande voorbeeld gemaakt?

String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";

Ans: In het bovenstaande voorbeeld worden twee objecten van de Java.Lang.String-klasse gemaakt. s1 en s3 zijn verwijzingen naar hetzelfde object.

V33. Waarom worden strings in Java als onveranderlijk genoemd?

Ans: In java worden string-objecten onveranderlijk genoemd, omdat zodra de waarde is toegewezen aan een string, deze niet kan worden gewijzigd en indien gewijzigd, wordt een nieuw object gemaakt.

In het onderstaande voorbeeld verwijst referentie str naar een stringobject met de waarde "Waarde één".

String str="Value One";

Wanneer er een nieuwe waarde aan wordt toegewezen, wordt een nieuw String-object gemaakt en wordt de verwijzing naar het nieuwe object verplaatst.

str="New Value";

V34. Wat is het verschil tussen een array en Vector?

Ans: een array groepeert gegevens van hetzelfde primitieve type en is statisch van aard, terwijl vectoren dynamisch van aard zijn en gegevens van verschillende gegevenstypen kunnen bevatten.

V35. Wat is multi-threading?

Ans: Multi-threading is een programmeerconcept om meerdere taken op een gelijktijdige manier binnen een enkel programma uit te voeren. Threads delen dezelfde processtapel en lopen parallel. Het helpt bij het verbeteren van de prestaties van elk programma.

V36. Waarom wordt Runnable Interface gebruikt in Java?

Ans: Runnable-interface wordt in Java gebruikt voor het implementeren van multi-threaded applicaties. Java.Lang.Runnable-interface wordt geïmplementeerd door een klasse om multi-threading te ondersteunen.

V37. Wat zijn de twee manieren om multi-threading in Java te implementeren?

Antw: Toepassingen met meerdere threads kunnen in Java worden ontwikkeld door een van de volgende twee methodologieën te gebruiken:

1. Door gebruik te maken van Java.Lang.Runnable Interface. Klassen implementeren deze interface om multi-threading mogelijk te maken. Er is een Run () - methode in deze interface die is geïmplementeerd.

2. Door een klasse te schrijven die de klasse Java.Lang.Thread uitbreidt.

V38. Wanneer er veel wijzigingen in de gegevens nodig zijn, welke moet dan de voorkeur hebben om te worden gebruikt? String of StringBuffer?

Ans: Omdat StringBuffers dynamisch van aard zijn en we de waarden van StringBuffer-objecten kunnen wijzigen in tegenstelling tot String, die onveranderlijk is, is het altijd een goede keuze om StringBuffer te gebruiken wanneer gegevens te veel worden gewijzigd. Als we in zo'n geval String gebruiken, wordt voor elke gegevenswijziging een nieuw String-object gemaakt, wat een extra overhead zal zijn.

V39. Wat is het doel van het gebruik van Break in elk geval van Switch Statement?

Ans: Break wordt gebruikt na elke case (behalve de laatste) in een switch, zodat de code breekt na de geldige case en ook niet stroomt in de volgende cases.

Als break niet na elke case wordt gebruikt, worden alle cases na de geldige case ook uitgevoerd, wat resulteert in verkeerde resultaten.

V40. Hoe wordt garbagecollection gedaan in Java?

Ans: In java, wanneer er niet meer naar een object wordt verwezen, vindt garbage collection plaats en wordt het object automatisch vernietigd. Voor automatische garbage collection roept java ofwel de methode System.gc () of de methode Runtime.gc () aan.

V41. Hoe kunnen we elke code uitvoeren, zelfs vóór de hoofdmethode?

Ans: Als we enige instructies willen uitvoeren voordat er zelfs maar objecten zijn gemaakt tijdens het laden van de klasse, kunnen we een statisch codeblok in de klasse gebruiken. Alle instructies in dit statische codeblok worden eenmaal uitgevoerd op het moment dat de klasse wordt geladen, zelfs voordat er objecten in de hoofdmethode zijn gemaakt.

V42. Kan een klasse tegelijkertijd een superklasse en een subklasse zijn? Geef voorbeeld.

Ans: Als er een hiërarchie van overerving wordt gebruikt, kan een klasse tegelijkertijd een superklasse zijn voor een andere klasse en een subklasse voor een andere klasse.

In het onderstaande voorbeeld is continentklasse een subklasse van wereldklasse en is het een superklasse van landklasse.

public class world {… .}public class continenet extends world {… }public class country extends continent {… .}

V43. Hoe worden objecten van een klasse gemaakt als er geen constructor is gedefinieerd in de klasse?

Ans: zelfs als er geen expliciete constructor is gedefinieerd in een java-klasse, worden objecten met succes gemaakt omdat een standaardconstructor impliciet wordt gebruikt voor het maken van objecten. Deze constructor heeft geen parameters.

V44. Hoe kunnen we er bij multi-threading voor zorgen dat een resource niet door meerdere threads tegelijk wordt gebruikt?

Ans: Bij multi-threading kan de toegang tot de bronnen die door meerdere threads worden gedeeld, worden beheerd door het concept van synchronisatie te gebruiken. Door een gesynchroniseerd sleutelwoord te gebruiken, kunnen we ervoor zorgen dat slechts één thread tegelijkertijd een gedeelde bron kan gebruiken en dat andere discussies pas over de bron kunnen krijgen als deze vrij is geworden van de andere die er gebruik van maakt.

V45. Kunnen we de constructor van een klasse meer dan eens aanroepen voor een object?

Ans: Constructor wordt automatisch aangeroepen wanneer we een object maken met een nieuw trefwoord. Het wordt slechts één keer aangeroepen voor een object op het moment dat het object wordt gemaakt en daarom kunnen we de constructor niet opnieuw aanroepen voor een object nadat het is gemaakt.

V46. Er zijn twee klassen met de naam classA en classB. Beide lessen zitten in hetzelfde pakket. Kan een privélid van classA worden benaderd door een object van classB?

Ans: Privé-leden van een klas zijn niet toegankelijk buiten het bereik van die klas en elke andere klas, zelfs in hetzelfde pakket, kan er geen toegang toe krijgen.

V47. Kunnen we twee methoden in een klas hebben met dezelfde naam?

Ans: We kunnen twee methoden in een klasse definiëren met dezelfde naam maar met een verschillend aantal / type parameters. Welke methode moet worden aangeroepen, hangt af van de doorgegeven parameters.

In de onderstaande klasse hebben we bijvoorbeeld twee afdrukmethoden met dezelfde naam maar met verschillende parameters. Afhankelijk van de parameters, wordt de juiste aangeroepen:

public class methodExample {public void print() {system.out.println("Print method without parameters.");}public void print(String name) {system.out.println("Print method with parameter");}public static void main(String args[]) {methodExample obj1 = new methodExample();obj1.print();obj1.print("xx");}}

V48. Hoe kunnen we een kopie maken van een Java-object?

Ans: We kunnen het concept van klonen gebruiken om een ​​kopie van een object te maken. Met behulp van kloon maken we kopieën met de werkelijke staat van een object.

Clone () is een methode van Cloneable-interface en daarom moet Cloneable-interface worden geïmplementeerd om objectkopieën te maken.

V49. Wat is het voordeel van overerving?

Ans: Het belangrijkste voordeel van het gebruik van overerving is herbruikbaarheid van code, aangezien overerving subklassen in staat stelt de code van zijn superklasse opnieuw te gebruiken. Polymorfisme (uitbreidbaarheid) is een ander groot voordeel waardoor nieuwe functionaliteit kan worden geïntroduceerd zonder bestaande afgeleide klassen te beïnvloeden.

V50. Wat is de standaardtoegangsspecificatie voor variabelen en methoden van een klasse?

Ans: Standaard toegangsspecificatie voor variabelen en methode is pakketbeveiligd, dwz variabelen en klasse zijn beschikbaar voor elke andere klasse maar in hetzelfde pakket, niet buiten het pakket.

V51. Geef een voorbeeld van het gebruik van Pointers in de Java-klasse.

Ans: Er zijn geen aanwijzingen in Java. We kunnen dus geen concept van verwijzingen gebruiken in Java.

V52. Hoe kunnen we overerving voor een klasse beperken, zodat er geen klasse van kan worden geërfd?

Ans: Als we willen dat een klasse niet verder wordt uitgebreid met een klasse, kunnen we het trefwoord Final gebruiken met de naam van de klasse.

In het volgende voorbeeld is de Stone-klasse Final en kan deze niet worden uitgebreid

public Final Class Stone {// Class methods and Variables}

V53. Wat is het toegangsbereik van de beschermde toegangsspecificatie?

Ans: Wanneer een methode of variabele wordt gedeclareerd met een beschermde toegangsspecificatie, wordt deze toegankelijk in dezelfde klasse, elke andere klasse van hetzelfde pakket en een subklasse.

Modificator

Klasse

Pakket

Subklasse

Wereld

openbaar

Y

Y

Y

Y

beschermd

Y

Y

Y

N

geen modificator

Y

Y

N

N

privaat

Y

N

N

N

V54. Wat is het verschil tussen Stack en Queue?

Ans: Stack en Queue worden beide gebruikt als tijdelijke aanduiding voor een verzameling gegevens. Het belangrijkste verschil tussen een stapel en een wachtrij is dat de stapel is gebaseerd op het Last in First out (LIFO) -principe, terwijl een wachtrij is gebaseerd op het FIFO-principe (First In First Out).

V55. Hoe kunnen we in java serialisatie van variabelen verbieden?

Ans: Als we willen dat bepaalde variabelen van een klasse niet worden geserialiseerd, kunnen we het trefwoord transient gebruiken tijdens het declareren. De onderstaande variabele trans_var is bijvoorbeeld een tijdelijke variabele en kan niet worden geserialiseerd:

public class transientExample {private transient trans_var;// rest of the code}

V56. Hoe kunnen we primitieve gegevenstypen als objecten gebruiken?

Ans: Primitieve gegevenstypen zoals int kunnen als objecten worden behandeld door hun respectievelijke wrapper-klassen te gebruiken. Integer is bijvoorbeeld een wrapper-klasse voor primitief gegevenstype int. We kunnen verschillende methoden toepassen op een wrapper-klasse, net als elk ander object.

V57. Welke soorten uitzonderingen worden opgemerkt tijdens het compileren?

Ans: aangevinkte uitzonderingen kunnen worden opgemerkt tijdens het compileren van het programma. Gecontroleerde uitzonderingen moeten worden afgehandeld door het try catch-blok in de code te gebruiken om de code met succes te compileren.

V58. Beschrijf verschillende toestanden van een thread.

Ans: Een thread in Java kan een van de volgende statussen hebben:

  • Gereed: wanneer een discussielijn is gemaakt, heeft deze de status Gereed.
  • Running: een thread die momenteel wordt uitgevoerd, is in actieve toestand.
  • Wachten: een thread die wacht op een andere thread om bepaalde bronnen vrij te maken, bevindt zich in de wachtstatus.
  • Dood: een thread die na uitvoering dood is gegaan, bevindt zich in de dode toestand.

V59. Kunnen we een standaardconstructor van een klasse gebruiken, zelfs als er een expliciete constructor is gedefinieerd?

Ans: Java biedt een standaard constructor zonder argument als er geen expliciete constructor is gedefinieerd in een Java-klasse. Maar als een expliciete constructor is gedefinieerd, kan de standaardconstructor niet worden aangeroepen en kan de ontwikkelaar alleen die constructors gebruiken die in de klasse zijn gedefinieerd.

V60. Kunnen we een methode overschrijven door dezelfde methodenaam en argumenten te gebruiken, maar verschillende retourtypen?

Ans: De basisvoorwaarde van het overschrijven van een methode is dat de naam van de methode, de argumenten en het retourneringstype exact hetzelfde moeten zijn als die van de methode die wordt overschreven. Het gebruik van een ander retourtype heeft dus geen voorrang op een methode.

Q61.Wat zal de output zijn van het volgende stuk code?

public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}

Ans: In dit geval wordt de postfix ++ operator gebruikt die eerst de waarde retourneert en vervolgens verhoogt. Daarom is de output 4.

V61. Iemand zegt dat hij met succes een Java-klasse heeft gecompileerd zonder zelfs maar een hoofdmethode erin te hebben? Is dit mogelijk?

Ans: main-methode is een startpunt van de Java-klasse en is echter vereist voor het uitvoeren van het programma; een klasse wordt met succes gecompileerd, zelfs als deze geen hoofdmethode heeft. Het kan echter niet worden uitgevoerd.

V62. Kunnen we een niet-statische methode van binnenuit een statische methode noemen?

Ans: niet-statische methoden zijn eigendom van objecten van een klasse en hebben een bereik op objectniveau en om de niet-statische methoden vanuit een statisch blok aan te roepen (zoals van een statische hoofdmethode), moet een object van de klasse worden gemaakt eerste. Met behulp van objectreferentie kunnen deze methoden worden aangeroepen.

V63. Wat zijn de twee omgevingsvariabelen die moeten worden ingesteld om Java-programma's te kunnen uitvoeren?

Antw: Java-programma's kunnen alleen op een machine worden uitgevoerd als de volgende twee omgevingsvariabelen correct zijn ingesteld:

  1. PATH-variabele
  2. CLASSPATH-variabele

V64. Kunnen variabelen in Java worden gebruikt zonder initialisatie?

Ans: Als in Java een variabele wordt gebruikt in een code zonder voorafgaande initialisatie door een geldige waarde, compileert het programma niet en geeft het een fout omdat er geen standaardwaarde wordt toegewezen aan variabelen in Java.

V65. Kan een klasse in Java worden overgenomen van meer dan één klasse?

Ans: In Java kan een klasse worden afgeleid uit slechts één klasse en niet uit meerdere klassen. Meerdere overervingen worden niet ondersteund door Java.

V66. Kan een constructor een andere naam hebben dan een klassenaam in Java?

Ans: Constructor in Java moet dezelfde naam hebben als de klassenaam en als de naam anders is, fungeert het niet als een constructor en beschouwt de compiler het als een normale methode.

V67. Wat wordt de output van Round (3.7) en Ceil (3.7)?

Ans: Round (3,7) retourneert 4 en Ceil (3,7) retourneert 4.

Q68: Kunnen we goto in Java gebruiken om naar een bepaalde regel te gaan?

Ans: In Java is er geen sleutelwoord goto en java ondersteunt deze functie om naar een bepaalde regel met een label te gaan niet.

V69. Kan een dode draad opnieuw worden gestart?

Ans: In Java kan een thread die zich in de dode toestand bevindt, niet opnieuw worden gestart. Er is geen manier om een ​​dode thread opnieuw te starten.

V70. Is de volgende klasseverklaring correct?

Ans:

public abstract final class testClass {// Class methods and variables}

Ans: De bovenstaande klassendeclaratie is onjuist, aangezien een abstracte klasse niet als definitief kan worden gedeclareerd.

V71. Is JDK vereist op elke machine om een ​​Java-programma uit te voeren?

Ans: JDK is een ontwikkelingskit van Java en is alleen vereist voor ontwikkeling en om een ​​Java-programma op een machine uit te voeren, is JDK niet vereist. Alleen JRE is vereist.

V72. Wat is het verschil tussen vergelijking met de methode is gelijk aan en == operator?

Ans: In Java wordt de methode equals () gebruikt om de inhoud van twee string-objecten te vergelijken en geeft true als de twee dezelfde waarde hebben, terwijl de == -operator de verwijzingen van twee string-objecten vergelijkt.

In het volgende voorbeeld retourneert equals () true omdat de twee tekenreeksobjecten dezelfde waarden hebben. De operator == retourneert echter false, aangezien beide tekenreeksobjecten naar verschillende objecten verwijzen:

public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}

V73. Is het mogelijk om een ​​methode in de Java-klasse te definiëren, maar de implementatie ervan in de code van een andere taal, zoals C, aan te bieden?

Ans: Ja, we kunnen dit doen door gebruik te maken van native methoden. In het geval van op native methodes gebaseerde ontwikkeling, definiëren we openbare statische methoden in onze Java-klasse zonder de implementatie ervan en vervolgens wordt de implementatie afzonderlijk in een andere taal zoals C gedaan.

V74. Hoe worden destructors gedefinieerd in Java?

Ans: In Java zijn er geen destructors gedefinieerd in de klasse, aangezien dit niet nodig is. Java heeft zijn eigen garbage collection-mechanisme dat het werk automatisch doet door de objecten te vernietigen wanneer er niet langer naar wordt verwezen.

V75. Kan een variabele tegelijkertijd lokaal en statisch zijn?

Ans: Nee, een variabele kan niet tegelijkertijd statisch en lokaal zijn. Het definiëren van een lokale variabele als statisch geeft een compilatiefout.

V76. Kunnen we statische methoden hebben in een interface?

Ans: Statische methoden kunnen in geen enkele klasse worden overschreven, terwijl methoden in een interface standaard abstract zijn en worden verondersteld te worden geïmplementeerd in de klassen die de interface implementeren. Het heeft dus geen zin om statische methoden in een interface in Java te hebben.

V77. Kunnen we in een klasse die een interface implementeert, de waarde wijzigen van een variabele die in de interface is gedefinieerd?

Ans: Nee, we kunnen de waarde van een variabele van een interface in de implementatieklasse niet wijzigen, aangezien alle variabelen die in de interface zijn gedefinieerd standaard openbaar zijn, statische en laatste en laatste variabelen zijn als constanten die later niet kunnen worden gewijzigd.

V78. Is het correct om te zeggen dat vanwege de garbage collection-functie in Java, een Java-programma nooit zonder geheugen komt te zitten?

Ans: hoewel automatische garbage collection wordt geleverd door Java, zorgt het er niet voor dat een Java-programma geen geheugen tekort komt, aangezien het mogelijk is dat het maken van Java-objecten sneller verloopt dan met garbage collection, wat resulteert in het vullen van alle beschikbare geheugenbronnen.

Garbage collection helpt dus bij het verkleinen van de kans dat een programma geen geheugen meer heeft, maar het zorgt daar niet voor.

V79. Kunnen we een ander retourtype hebben dan ongeldig voor de hoofdmethode?

Ans: Nee, de hoofdmethode van de Java-klasse kan alleen een ongeldig retourtype hebben om het programma met succes te laten uitvoeren.

Als u echter absoluut een waarde naar moet retourneren aan het einde van de hoofdmethode, kunt u System.exit (int status) gebruiken

V80. Ik wil een object opnieuw bereiken en gebruiken nadat het is opgehaald. Hoe het mogelijk is?

Ans: Zodra een object is vernietigd door de garbage collector, bestaat het niet meer op de heap en kan het niet meer worden geopend. Er is geen manier om er opnieuw naar te verwijzen.

V81. Welke methode is bij het programmeren van Java-threads een must-implementatie voor alle threads?

Ans: Run () is een methode van de Runnable-interface die door alle threads moet worden geïmplementeerd.

V82. Ik wil databaseverbindingen in mijn programma beheren en wil dat slechts één thread tegelijk databaseverbinding kan maken. Hoe kan ik deze logica implementeren?

Ans: Dit kan worden geïmplementeerd door gebruik te maken van het concept van synchronisatie. Database-gerelateerde code kan worden geplaatst in een methode die een gesynchroniseerd sleutelwoord heeft, zodat slechts één thread er tegelijkertijd toegang toe heeft.

V83. Hoe kan een uitzondering handmatig worden gegenereerd door een programmeur?

Ans: Om handmatig een exception in een codeblok te gooien , wordt het throw- sleutelwoord gebruikt. Vervolgens wordt deze uitzondering opgevangen en afgehandeld in het catch-blok.

public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}

V84. Ik wil dat mijn klasse zo wordt ontwikkeld dat geen enkele andere klasse (zelfs geen afgeleide klasse) zijn objecten kan maken. Hoe kan ik dat doen?

Ans: Als we de constructor van een klasse als privé declareren, zal deze niet toegankelijk zijn voor een andere klasse en daarom zal geen enkele andere klasse in staat zijn om deze te instantiëren en zal de vorming van het object alleen tot zichzelf worden beperkt.

V85. Hoe worden objecten in Java opgeslagen?

Ans: In java krijgt elk object bij het maken een geheugenruimte uit een heap. Wanneer een object wordt vernietigd door een garbage collector, wordt de ruimte die eraan is toegewezen vanaf de hoop opnieuw toegewezen aan de hoop en komt beschikbaar voor nieuwe objecten.

V86. Hoe kunnen we de werkelijke grootte van een object op de hoop vinden?

Ans: In Java is er geen manier om de exacte grootte van een object op de heap te achterhalen.

V87. Aan welke van de volgende klassen is meer geheugen toegewezen?

Klasse A: drie methoden, vier variabelen, geen object

Klasse B: vijf methoden, drie variabelen, geen object

Ans: Geheugen wordt niet toegewezen voordat objecten zijn gemaakt. Omdat er voor beide klassen geen objecten zijn gemaakt, wordt er voor geen enkele klasse geheugen op heap toegewezen.

V88. Wat gebeurt er als een uitzondering niet wordt afgehandeld in een programma?

Ans: Als een uitzondering niet wordt afgehandeld in een programma met behulp van try catch-blokken, wordt het programma afgebroken en wordt er geen instructie uitgevoerd na de instructie die het gooien van uitzonderingen veroorzaakte.

V89. Ik heb meerdere constructeurs gedefinieerd in een klas. Is het mogelijk om een ​​constructor aan te roepen vanuit de body van een andere constructeur?

Ans: Als een klasse meerdere constructors heeft, is het mogelijk om een ​​constructor aan te roepen vanuit de body van een andere met this () .

V90. Wat wordt bedoeld met anonieme les?

Ans: Een anonieme klasse is een klasse die is gedefinieerd zonder enige naam in een enkele regel code met een nieuw trefwoord.

In onderstaande code hebben we bijvoorbeeld een anonieme klasse gedefinieerd in één regel code:

public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}

V91. Is er een manier om de grootte van een array te vergroten nadat deze is gedeclareerd?

Ans: Arrays zijn statisch en zodra we de grootte hebben gespecificeerd, kunnen we deze niet meer wijzigen. Als we dergelijke verzamelingen willen gebruiken waarbij we mogelijk een verandering van grootte (aantal items) nodig hebben, moeten we de voorkeur geven aan vector boven array.

V92. Als een applicatie meerdere klassen bevat, is het dan oké om een ​​hoofdmethode in meer dan één klasse te hebben?

Ans: Als er een hoofdmethode in meer dan één klassen in een Java-applicatie is, zal dit geen enkel probleem veroorzaken, aangezien het toegangspunt voor een applicatie een specifieke klasse zal zijn en de code zal starten vanaf de hoofdmethode van alleen die specifieke klasse.

V93. Ik wil gegevens van objecten bewaren voor later gebruik. Wat is de beste manier om dat te doen?

Ans: De beste manier om gegevens te bewaren voor toekomstig gebruik, is door het concept van serialisatie te gebruiken.

V94. Wat is een lokale klasse in Java?

Ans: Als we in Java een nieuwe klasse binnen een bepaald blok definiëren, wordt dit een lokale klasse genoemd. Zo'n klasse heeft een lokaal bereik en is niet bruikbaar buiten het blok waarin het is gedefinieerd.

V95. String en StringBuffer vertegenwoordigen beide String-objecten. Kunnen we String en StringBuffer in Java vergelijken?

Ans: Hoewel String en StringBuffer beide String-objecten vertegenwoordigen, kunnen we ze niet met elkaar vergelijken en als we ze proberen te vergelijken, krijgen we een foutmelding.

V96. Welke API biedt Java voor bewerkingen op set objecten?

Antw: Java biedt een verzamelings-API die veel handige methoden biedt die op een set objecten kunnen worden toegepast. Enkele van de belangrijke klassen die door Collection API worden geboden, zijn ArrayList, HashMap, TreeSet en TreeMap.

V97. Kunnen we een ander type casten naar Boolean Type met typecasting?

Ans: Nee, we kunnen geen enkel ander primitief type naar een Booleaans gegevenstype casten, noch kunnen we een Booleaans gegevenstype naar een ander primitief gegevenstype casten.

V98. Kunnen we verschillende retourtypen gebruiken voor methoden wanneer deze worden overschreven?

Ans: De basisvereiste van het overschrijven van een methode in Java is dat de overschreven methode dezelfde naam en parameters moet hebben, maar een methode kan worden overschreven met een ander retourtype zolang het nieuwe retourtype het origineel uitbreidt.

De methode retourneert bijvoorbeeld een referentietype.

Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}

V99. Wat is de basisklasse van alle uitzonderingsklassen?

Ans: In Java is Java.lang.Throwable de superklasse van alle uitzonderingsklassen en alle uitzonderingsklassen zijn afgeleid van deze basisklasse.

V100. Wat is de volgorde van aanroepen van constructeurs in overerving?

Ans: In het geval van overerving, wanneer een nieuw object van een afgeleide klasse wordt gemaakt, wordt eerst de constructor van de superklasse aangeroepen en vervolgens wordt de constructor van de afgeleide klasse aangeroepen.

Bereid je voor op je sollicitatiegesprek !!! Doorloop de Java-zelfstudie om beter voorbereid te zijn.

Deze gedetailleerde pdf met Java-interviewvragen helpt je de twijfels over Java-interviewvragen weg te nemen en helpt je ook om het interview te kraken.