15 Technical Core Java Interview Questions antwoorden voor ervaren ontwikkelaars
wanneer de ervaring van een Java Programmeur groeit in de jaren bijvoorbeeld wanneer het gaat van beginner jaren ( 2 tot 4) naar meer ervaring of een soort van senior niveau ( 5 tot 7 jaar), de kern Java Interview Vragen ook een beetje veranderen. Natuurlijk blijven basisprincipes zoals datastructuur, algoritmen en objectgeoriënteerd programmeren hetzelfde, maar soorten vragen zullen geavanceerder worden en hun antwoorden zullen zeker gedetailleerder en accurater moeten zijn. Ik krijg vaak vragen over kern Java vragen gesteld aan een senior developer van 5 tot 6 jaar ervaring, of, Soms, Ik ga voor een interview van senior Java developer, wat voor soort vragen Ik zou verwachten. Dit verbaast me soms, dat als je eenmaal senior bent, je automatisch begint deel te nemen aan het interview, en je moet een idee hebben van wat te verwachten op Interviews, maar op hetzelfde moment, kan ik begrijpen dat het hebben van een idee van vragen voordat je op Interview gaat, helpt de voorbereiding. Natuurlijk, je bent niet van plan om een vraag te krijgen als degene die je hebt geconfronteerd op 2 tot 3 jaar niveau Java Interviews, maar het hangt ook af van verschillende rondes van Interviews. ik heb niet veel veranderingen gezien in de vragen die werden gesteld in de telefonische ronde, die bijna hetzelfde blijft. U vindt er een aantal fact-based, een aantal codering vragen en een paar lastige vragen. Aan de andere kant zijn Interviews gedetailleerder en lastiger geworden, vooral met vervelende follow-ups.
in dit artikel ga ik ongeveer 15 Technische kern Java Interview Vragen delen, die ik senior en ervaren ontwikkelaars heb zien stellen met 4 tot 6 jaar ervaring in verschillende interviews, meestal op telefonische rondes. Ik ben niet het posten van antwoorden vanaf nu, maar u kunt antwoorden vinden op de meeste van de vragen op hier of de Javarevisited blog.
als je haast hebt en actief op zoek bent naar een Java Developer baan, kun je ook hulp krijgen van een aantal goede boeken die geschreven zijn om je voor te bereiden op Java J2EE interviews. Boeken zoals, Java Programming Interview Exposed behandelt alle belangrijke onderwerpen voor zowel de kern van Java en Java EE interviews, die fundamentele Java vragen omvatten, data structuur en algoritmen, JVM internals en GC tuning, Hibernate en lente interview vragen, JUnit ant unit testen vragen, en een aantal Java 8 spullen.
Het omvat ook kennis van andere JVM talen zoals Scala, Groovy en andere platforms zoals Android. Een perfecte metgezel om goed te doen in Java interviews.
Als u meer wilt voorbereiden op de codering dan kunt u ook kijken op kraken van de codering Interview, dat bevat bijna 150 programmeervragen en oplossingen van technische interviews van grote tech bedrijven zoals Amazon, Facebook, Google, Twitter, en Microsoft.
15 kernvragen over Java gedurende 5 tot 6 jaar ervaring
Al deze vragen zijn verzameld bij vrij senior ontwikkelaars, die minstens 5 jaar ervaring hebben. Ze hebben deze vragen gezien op verschillende rondes van hun kern Java-interviews, waaronder telefonische en face-to-face rondes op verschillende bedrijven, meestal op investeringsbanken zoals Barclays, Morgan, RBS, en anderen.
Wat is bezig met draaien? Waarom zou je het in Java gebruiken?
een van de interessante multithreading vragen aan senior Java programmeurs, busy spinning is een wachtstrategie, waarin een thread gewoon in een lus wacht, zonder de CPU vrij te geven om in slaap te vallen. Dit is een zeer geavanceerde en gespecialiseerde wachtstrategie die wordt gebruikt in de hoogfrequente handelstoepassing wanneer de wachttijd tussen twee berichten zeer minimaal is.
door de CPU niet vrij te geven of de thread op te schorten, behoudt uw thread alle gegevens en instructies in de cache, die verloren kunnen gaan als de thread werd onderbroken en hervat in een andere kern van de CPU.
deze vraag is vrij populair in hoogfrequent programmeerdomein met lage latentie, waar programmeurs proberen om extreem lage latentie in het bereik van micro tot milliseconden. Zie hier meer 50 + advanced thread interview Vragen voor ervaren programmeurs.
Wat is Read-Write Lock? Gebruikt ConcurrentHashMap in Java Het ReadWrite-slot?
ReadWrite Lock is een implementatie van een lock stripping techniek, waarbij twee afzonderlijke sloten worden gebruikt voor het lezen en schrijven. Aangezien leesbewerking de toestand van het object niet wijzigt, is het veilig om meerdere thread-toegang tot een gedeeld object toe te staan voor lezen zonder vergrendeling, en door één slot in het lees-en schrijfslot te splitsen, kunt u dat gemakkelijk doen.
Java biedt een implementatie van een read-write lock in de vorm van de reentrantreadwritlock class in java.util.gelijktijdig.Vergrendel pakket. Dit is de moeite waard om te kijken voordat u besluit om uw eigen read-write vergrendeling implementatie te schrijven.
ook de huidige implementatie van java.util.ConcurrentHashMap maakt geen gebruik van de ReadWriteLock, in plaats daarvan, het verdeelt de kaart in verschillende segmenten en vergrendelt ze afzonderlijk met behulp van verschillende sloten. Dit betekent dat een bepaalde tijd, slechts een deel van de ConcurrentHashMap is vergrendeld, in plaats van de hele kaart. Zie hoe ConcurrentHashMap intern werkt in Java voor meer details.
Deze kernvraag over Java is ook erg populair bij senior en meer ervaren Java-interviews, bijvoorbeeld 4 tot 6 jaar, waarbij je verwacht dat de Interviewer meer in detail gaat, zoals door je te vragen om een implementatie van de read-write lock met verschillende beleidsregels te bieden. Als je een ervaren Java programmeur bent, overweeg dan om Java Concurrency in de praktijk te lezen om meer vertrouwen te krijgen over multithreading en concurrency in Java.
Hoe maak je een Object onveranderlijk in Java? Waarom zou je een object onveranderlijk maken?
wel, onveranderbaarheid biedt verschillende voordelen, waaronder thread-veiligheid, de mogelijkheid om te cachen en resulteren in een meer leesbare multithreading code. Zie hier om te leren hoe je objecten onveranderlijk te maken. Nogmaals, deze vraag kan ook in meer detail gaan en afhankelijk van uw antwoord, kan verschillende andere vragen te brengen bijv. wanneer u de lente is onveranderlijk, wees klaar met een aantal redenen waarom String onveranderlijk is in Java.
welke ontwerppatronen hebt u gebruikt in uw Java-Project?
verwacht altijd een aantal ontwerppatronen gerelateerde vraag voor Core Java Interview van senior developer positie. Het is een betere strategie om een GOF ontwerppatroon te noemen in plaats van Singleton of MVC, die bijna elke andere Java-ontwikkelaar het gebruiken.
uw beste kans kan een Decorator patroon of misschien afhankelijkheid injectie patroon, die vrij populair is in de lente Framework. Het is ook goed om alleen het ontwerp patronen die u daadwerkelijk hebt gebruikt in uw project vermelden en weet dat het afwegingen.
Het is gebruikelijk dat als je een bepaald ontwerppatroon zegt Factory of Abstract Factory, de volgende vraag van de Interviewer zou zijn: heb je dit patroon gebruikt in je project? Dus wees klaar met de juiste voorbeelden en waarom je kiest voor een bepaald patroon. U kunt ook zien dit artikel voor meer geavanceerde ontwerp patroon vragen uit Java interviews.
kent u het Open Closed Design principe of het Liskov substitutie Principe?
ontwerppatronen zijn gebaseerd op objectgeoriënteerde ontwerpprincipes, waarvan ik sterk vond dat elke objectgeoriënteerde ontwikkelaar en de programmeur zou moeten weten, of tenminste een basisidee hebben van wat deze principes zijn en hoe ze je helpen om betere objectgeoriënteerde code te schrijven. Als u het antwoord op deze vraag niet weet, kunt u beleefd nee zeggen, omdat het niet van u verwacht wordt dat u het antwoord op elke vraag weet, maar door deze vraag te beantwoorden, kunt u uw claim sterker maken omdat veel ervaren ontwikkelaars falen om basisvragen als deze te beantwoorden. Lees schone Code meer informatie over objectgeoriënteerde en solide ontwerpprincipes.
welk ontwerppatroon gebruikt u om uw Code af te schermen van een bibliotheek van derden die waarschijnlijk over een paar maanden door een andere zal worden vervangen?
Dit is slechts een voorbeeld van de scenario-gebaseerde ontwerp patroon interview vraag. Om de praktische ervaring van Java-ontwikkelaars met meer dan 5 jaar ervaring te testen, stellen bedrijven dit soort vragen. U kunt meer echte ontwerpproblemen in verschillende formaten verwachten, sommige met meer gedetailleerde uitleg met context, of sommige met alleen de bedoeling rond.
Een manier om uw code af te schermen van een bibliotheek van derden is door te coderen tegen een interface in plaats van implementatie en dan afhankelijkheid injectie te gebruiken om een bepaalde implementatie te bieden. Dit soort vragen wordt ook vaak gesteld aan ervaren en senior Java-ontwikkelaars met 5 tot 7 jaar ervaring.opdracht 7) hoe voorkomt u SQL-injectie in Java-Code? deze vraag wordt meer gesteld aan J2EE-en Java EE-ontwikkelaars dan aan kern-Java-ontwikkelaars, maar het is nog steeds een goede vraag om de JDBC-en Beveiligingsvaardigheden van ervaren Java-programmeurs te controleren.
U kunt Prepredstatement gebruiken om SQL-injectie in Java-code te voorkomen. Gebruik van de Prepredstatement voor het uitvoeren van SQL query ‘ s biedt niet alleen betere prestaties, maar ook uw Java en J2EE applicatie te beschermen tegen SQL injectie aanval.
Op een soortgelijke opmerking, als je meer werkt op Java EE of J2EE kant, dan moet je ook bekend zijn met andere beveiligingsproblemen, waaronder Session Fixation attack of Cross-Site Scripting attack en hoe je ze kunt oplossen. Dit zijn enkele velden en vragen waar een goed antwoord veel verschil kan maken in uw selectie.
opdracht 8) vertel me over de verschillende referentie types die beschikbaar zijn in Java, bijvoorbeeld WeakReference, SoftReference of PhantomReference? en waarom zou je ze gebruiken?
wel, ze zijn verschillende referentie types afkomstig van java.lang.ref pakket en verstrekt om Java Garbage Collector te helpen in een geval van lage geheugenproblemen. Als je een object wrap met WeakReference dan zal het in aanmerking komen voor garbage collected als er o sterke referenties. Ze kunnen later worden teruggewonnen door de Garbage collector als JVM weinig geheugen heeft.
De java.util.WeakHashMap is een speciale Map implementatie, waarvan de sleutels zijn het object van WeakReference, dus als alleen Kaart bevat de referentie van een object en geen ander, Die object kan worden vuilnis verzameld als GC geheugen nodig heeft. Zie Java Performance the Definitive Guide meer informatie over hoe om te gaan met prestatieproblemen in Java.
vraag 9) Hoe werkt de get-methode van HashMap in Java?
Ja, Dit is nog steeds een van de meest populaire kernvragen van Java voor senior developer interviews. Je kunt deze vraag ook verwachten op telephonic round, gevolgd door veel vervolgvragen zoals besproken in mijn bericht Hoe werkt HashMap werken in Java.
Het korte antwoord op deze vraag is dat HashMap gebaseerd is op hash table data structuur en hashCode() methode gebruikt om hash code te berekenen om de bucket locatie op de onderliggende array te vinden en is gelijk aan() methode om het object in dezelfde bucket te zoeken in het geval van een botsing. Zie hier voor meer informatie over hoe werkt get() methode van HashMap werkt in Java. opdracht 10) Welke twee methoden HashMap sleutel Object moet implementeren? dit is een van de vervolgvragen waarover ik in eerdere vragen sprak. Omdat het werken van HashMap gebaseerd is op hash table data structuur, moet elk object dat je wilt gebruiken als een sleutel voor HashMap of een andere hash-gebaseerde collectie zoals Hashtable, of ConcurrentHashMap implementeren is gelijk() en hashCode() methode.
De hashCode() wordt gebruikt om de locatie van de emmer te vinden, d.w.z. index van de onderliggende array en is gelijk aan () methode wordt gebruikt om het juiste object te vinden in een gekoppelde lijst opgeslagen in de emmer in het geval van een botsing. Trouwens, vanaf Java 8 is HashMap ook begonnen met het gebruik van een boomgegevensstructuur om het object op te slaan in het geval van een botsing om de slechtste prestaties van HashMap te verminderen van O(n) naar o(logN). Zie het artikel voor meer informatie over hoe werkt HashMap handless botsingen in Java. opdracht 11) Waarom moet een Object dat als sleutel wordt gebruikt onveranderlijk zijn? dit is een vervolg op eerdere kernvragen over Java. Het is goed om de diepte van de technische kennis van kandidaten te testen door meer en meer vragen te stellen over hetzelfde onderwerp. Als je weet over onveranderlijkheid, kun je deze vraag zelf beantwoorden. Het korte antwoord op deze vraag is de sleutel moet onveranderlijk zijn, zodat hashCode() Methode altijd dezelfde waarde retourneert.
omdat de hashcode die wordt geretourneerd door de methode hashCode () afhankelijk is van de inhoud van het object, d.w.z. de waarden van member variabelen. Als een object muteerbaar is dan kunnen die waarden veranderen en dat geldt ook voor de hash code. Als hetzelfde object een andere hashcode retourneert nadat u de waarde in HashMap hebt ingevoegd, zult u uiteindelijk op verschillende bucket-locaties zoeken en het object niet kunnen ophalen. Daarom moet een sleutelobject onveranderlijk zijn. Het is geen regel die door de compiler wordt afgedwongen, maar je moet er als ervaren programmeur voor zorgen. Zie het artikel voor meer geavanceerde Java collectie interview vragen. opdracht 12) Hoe bereikt ConcurrentHashMap zijn schaalbaarheid? soms wordt deze multithreading + collection interview vraag ook gesteld als, het verschil tussen ConcurrentHashMap en Hashtable in Java. Het probleem met gesynchroniseerde HashMap of Hashtable was dat de hele kaart is vergrendeld wanneer een thread een bewerking met kaart uitvoert.
De java.util.ConcurrentHashMap class lost dit probleem op door gebruik te maken van een lock stripping techniek, waarbij de hele kaart wordt vergrendeld op verschillende segmenten en alleen een bepaald segment wordt vergrendeld tijdens de schrijfoperatie, niet de hele kaart. De ConcurrentHashMap bereikt ook zijn schaalbaarheid door het toestaan van lock-free leest als gelezen is een thread-veilige werking. Zie hier voor meer geavanceerde multi-threading en concurrency vragen in Java. opdracht 13) hoe deel je een object tussen threads? of hoe een object van de ene draad naar de andere door te geven? er zijn meerdere manieren om dat te doen, bijv. Wachtrijen, wisselaar, enz., maar het blokkeren van de wachtrij met behulp van Producent-Consument patroon is de makkelijkste manier om een object van draad naar een andere.
opdracht 14) Hoe vind je of je programma een impasse heeft?
door thread dump te nemen met kill -3, met JConsole of VisualVM), stel ik voor om deze kern java interview vraag in meer detail voor te bereiden, omdat de Interviewer zeker graag met meer detail gaat, bijvoorbeeld ze zullen drukken met vragen als, Heb je dat echt gedaan in je project of niet?opdracht 15) hoe voorkomt u een impasse tijdens het coderen? door ervoor te zorgen dat sloten op een geordende manier worden verkregen en vrijgegeven, zie hier voor een gedetailleerd antwoord op deze vraag.
dat is alles op deze lijst van kern Java Interview Vragen voor senior ontwikkelaars en ervaren programmeurs. Ik heb niet veel vragen opgenomen van andere belangrijke onderwerpen zoals Exception handling, Garbage Collection tuning en JVM Internals, die ook erg populair is onder Java programmeurs met 5 tot 6 jaar ervaring, misschien zal ik ze in het volgende deel opnemen.
Trouwens, als je het antwoord op een van deze kernvragen van Java niet vindt, laat het me dan weten. Ik kan de post bijwerken met een meer gedetailleerde optie, op basis van het verzoek van mijn lezer.
Verder leren
De Complete Java Masterclass
Java Fundamentals: De Java taal
gerelateerd Java Interview Questions on other topics
- Java Questions for Phone Screen Interviews (list)
- Thread and Concurrency Questions from Java Interviews (list)
- Java enum Interview Questions and Answers (list)
- Java OOP Interview Questions with Answers (list)
- Spring MVC Interview Questions and Answers (list)
- Hibernate interview questions with answers (list)
- JDBC interview questions and answers (list)
- array concept interview questions in Java (list)
- RESTful Web Service Interview Questions (list)
- Servlet and JSP Interview Questions and Answers (list)
- Java Web Service Interview Questions and Answers (list)
Leave a Reply