Articles

15 Technische Core Java Interview Fragen Antworten für erfahrene Entwickler

Wenn die Erfahrung eines Java-Programmierers im Laufe der Jahre wächst, z. B. wenn es von Anfängerjahren (2 bis 4) zu mehr Erfahrung oder einer Art Senior-Level (5 bis 7 Jahre) geht, ändern sich auch die Core Java Interview Fragen ein wenig. Natürlich bleiben die Grundlagen wie Datenstruktur, Algorithmen und objektorientierte Programmierung gleich, aber die Arten von Fragen werden fortgeschrittener und ihre Antworten müssen auf jeden Fall detaillierter und genauer sein. Ich erhalte häufig Fragen zu Java-Kernfragen, die einem leitenden Entwickler mit 5- bis 6-jähriger Erfahrung gestellt werden, oder manchmal gehe ich zu einem Interview mit einem leitenden Java-Entwickler, welche Art von Fragen ich erwarten sollte. Das verwirrt mich manchmal, dass, sobald Sie älter werden, Sie automatisch anfangen, am Interview teilzunehmen, und Sie sollten eine Vorstellung davon haben, was Sie bei Interviews erwarten können, aber gleichzeitig, Ich kann verstehen, dass eine Vorstellung von Fragen vor dem Vorstellungsgespräch, hilft bei der Vorbereitung. Natürlich werden Sie keine Frage bekommen, wie Sie sie in Java-Interviews vor 2 bis 3 Jahren gestellt haben, aber es hängt auch von verschiedenen Interviewrunden ab.
Ich habe nicht viele Änderungen in den Fragen gesehen, die in der Telefonrunde gestellt wurden, die fast gleich bleibt. Sie finden einige faktenbasierte, einige Codierungsfragen und einige knifflige Fragen. Auf der anderen Seite von Angesicht zu Angesicht, Interviews sind detaillierter und kniffliger geworden, vor allem mit fiesen Follow-ups.
In diesem Artikel werde ich einige 15 technische Kern Java Interview Fragen, die ich gesehen habe, fragte Senior und erfahrene Entwickler von 4 bis 6 Jahren Erfahrung in verschiedenen Interviews, meist auf telefonischen Runden zu teilen. Ich poste derzeit keine Antworten, aber Sie können Antworten auf die meisten Fragen hier oder im Javarevisited-Blog finden.
Wenn Sie es eilig haben und aktiv nach einem Java-Entwickler-Job suchen, können Sie sich auch von einigen guten Büchern helfen lassen, die Sie auf Java J2EE-Interviews vorbereiten. Bücher wie Java Programming Interview Exposed decken alle wichtigen Themen für Core Java- und Java EE-Interviews ab, darunter grundlegende Java-Fragen, Datenstruktur und Algorithmen, JVM-Interna und GC-Tuning, Hibernate- und Spring-Interviewfragen, JUnit ant Unit Testing Fragen und einige Java 8 Sachen.
Es umfasst auch Kenntnisse in anderen JVM-Sprachen wie Scala, Groovy und anderen Plattformen wie Android. Ein perfekter Begleiter, um in Java-Interviews gut abzuschneiden.
Wenn Sie mehr auf der Codierungsseite vorbereiten möchten, können Sie auch Cracking the Coding Interview lesen, das fast 150 Programmierfragen und -Lösungen aus technischen Interviews großer Technologieunternehmen wie Amazon, Facebook, Google, Twitter und Microsoft enthält.

15 Core Java Fragen Für 5 bis 6 Jahre erfahren

Alle diese Fragen wurden von ganz älteren Entwicklern gesammelt, die mindestens 5 Jahre Erfahrung hat. Sie haben diese Fragen in verschiedenen Runden ihrer Java-Kerninterviews gesehen, einschließlich telefonischer und persönlicher Runden bei verschiedenen Unternehmen, hauptsächlich bei Investmentbanken wie Barclays, Morgan, RBS und anderen.

Was ist beschäftigt Spinnen? Warum sollten Sie es in Java verwenden?

Eine der interessanten Multithreading-Fragen an ältere Java-Programmierer, Busy Spinning, ist eine Wartestrategie, bei der ein Thread einfach in einer Schleife wartet, ohne die CPU für den Ruhezustand freizugeben. Dies ist eine sehr fortschrittliche und spezialisierte Wartestrategie, die in der Hochfrequenzhandelsanwendung verwendet wird, wenn die Wartezeit zwischen zwei Nachrichten sehr gering ist.Wenn Sie die CPU nicht freigeben oder den Thread anhalten, behält Ihr Thread alle zwischengespeicherten Daten und Anweisungen bei, die verloren gehen können, wenn der Thread angehalten und in einem anderen CPU-Kern wieder aufgenommen wurde.
Diese Frage ist sehr beliebt in der Hochfrequenz-Low-Latency-Programmierung Domain, wo Programmierer für extrem niedrige Latenz im Bereich von Mikro- bis Millisekunden versuchen. Sehen Sie hier mehr 50+ erweiterte Thread Interview Fragen für erfahrene Programmierer.

core Java Interview Fragen für ältere Entwickler

Was ist Lese-Schreib-Sperre? Verwendet ConcurrentHashMap in Java die ReadWrite-Sperre?

ReadWrite Lock ist eine Implementierung einer Lock-Stripping-Technik, bei der zwei separate Sperren zum Lesen und Schreiben verwendet werden. Da der Lesevorgang den Status des Objekts nicht ändert, ist es sicher, mehreren Threads den Zugriff auf ein gemeinsam genutztes Objekt zum Lesen ohne Sperren zuzulassen.
Java bietet eine Implementierung einer Lese-Schreib-Sperre in Form der ReentrantReadWritLock Klasse in der Java.util.gleichzeitig.paket sperren. Dies ist einen Blick wert, bevor Sie sich entscheiden, Ihre eigene Implementierung der Lese- / Schreibsperre zu schreiben.
Auch die aktuelle Implementierung von Java.util.ConcurrentHashMap verwendet das ReadWriteLock nicht, sondern unterteilt die Map in mehrere Segmente und sperrt sie separat mit verschiedenen Sperren. Dies bedeutet, dass zu einem bestimmten Zeitpunkt nur ein Teil der ConcurrentHashMap anstelle der gesamten Karte gesperrt ist. Weitere Informationen finden Sie unter wie ConcurrentHashMap intern in Java funktioniert.
Diese Java-Kernfrage ist auch bei älteren und erfahreneren Java-Interviews sehr beliebt, z. B. 4 bis 6 Jahre, in denen Sie erwarten, dass der Interviewer detaillierter darauf eingeht, z. B. indem er Sie auffordert, eine Implementierung der Lese-Schreib-Sperre mit unterschiedlichen Richtlinien bereitzustellen. Wenn Sie ein erfahrener Java-Programmierer sind, sollten Sie Java Concurrency in Practice lesen, um mehr Vertrauen in Multithreading und Concurrency in Java zu gewinnen.

Wie macht man ein Objekt in Java unveränderlich? Warum sollten Sie ein Objekt unveränderlich machen?

Nun, Unveränderlichkeit bietet mehrere Vorteile, einschließlich Thread-Sicherheit, Cache-Fähigkeit und führt zu einem besser lesbaren Multithreading-Code. Hier erfahren Sie, wie Sie Objekte unveränderlich machen. Auch diese Frage kann wieder detaillierter gehen und je nach Ihrer Antwort mehrere andere Fragen mit sich bringen, z. wenn Sie erwähnen, dass Spring unveränderlich ist, sollten Sie einige Gründe angeben, warum String in Java unveränderlich ist.

Welche Entwurfsmuster haben Sie in Ihrem Java-Projekt verwendet?

Erwarten Sie immer einige Design Patterns bezogene Frage für Core Java Interview von Senior Developer Position. Es ist eine bessere Strategie, ein GOF-Entwurfsmuster anstelle von Singleton oder MVC zu erwähnen, das fast jeder andere Java-Entwickler verwendet.
Ihre beste Wette kann ein Decorator-Muster oder vielleicht ein Abhängigkeitsinjektionsmuster sein, das im Spring-Framework sehr beliebt ist. Es ist auch gut, nur die Entwurfsmuster zu erwähnen, die Sie tatsächlich in Ihrem Projekt verwendet haben und deren Kompromisse kennen.
Es ist üblich, dass, wenn Sie ein bestimmtes Entwurfsmuster erwähnen, sagen Sie Factory oder Abstract Factory, Die nächste Frage des Interviewers lautet: Haben Sie dieses Muster in Ihrem Projekt verwendet? Seien Sie also bereit mit den richtigen Beispielen und warum Sie ein bestimmtes Muster wählen. In diesem Artikel finden Sie auch erweiterte Fragen zu Entwurfsmustern aus Java-Interviews.

Kennen Sie das Open Closed Design Prinzip oder das Liskov Substitutionsprinzip?

Entwurfsmuster basieren auf objektorientierten Entwurfsprinzipien, die meiner Meinung nach jeder objektorientierte Entwickler und Programmierer kennen oder zumindest eine grundlegende Vorstellung davon haben sollten, was diese Prinzipien sind und wie sie Ihnen helfen, besseren objektorientierten Code zu schreiben. Wenn Sie die Antwort auf diese Frage nicht kennen, können Sie höflich Nein sagen, da es nicht von Ihnen erwartet wird, die Antwort auf jede Frage zu kennen, aber durch die Beantwortung dieser Frage können Sie Ihren Anspruch stärken, da viele erfahrene Entwickler grundlegende Fragen wie diese nicht beantworten. Erfahren Sie mehr über objektorientierte und SOLIDE Designprinzipien.

Welches Entwurfsmuster werden Sie verwenden, um Ihren Code vor einer Bibliothek eines Drittanbieters zu schützen, die wahrscheinlich in einigen Monaten durch eine andere ersetzt wird?

Dies ist nur ein Beispiel für die szenariobasierte Entwurfsmuster-Interviewfrage. Um die praktische Erfahrung von Java-Entwicklern mit mehr als 5 Jahren Erfahrung zu testen, stellen Unternehmen diese Art von Frage. Sie können mehr reale Designprobleme in verschiedenen Formaten erwarten, einige mit detaillierterer Erklärung mit Kontext oder einige nur mit Absicht. Eine Möglichkeit, Ihren Code vor einer Bibliothek eines Drittanbieters zu schützen, besteht darin, Code gegen eine Schnittstelle und nicht gegen eine Implementierung zu codieren und dann die Abhängigkeitsinjektion zu verwenden, um eine bestimmte Implementierung bereitzustellen. Diese Art von Frage wird auch erfahrenen und leitenden Java-Entwicklern mit 5 bis 7 Jahren Erfahrung häufig gestellt.

Frage 7) Wie verhindern Sie SQL-Injection in Java-Code?

Diese Frage wird mehr von J2EE- und Java EE-Entwicklern als von Core-Java-Entwicklern gestellt, aber es ist immer noch eine gute Frage, die JDBC- und Sicherheitsfähigkeiten erfahrener Java-Programmierer zu überprüfen.
Sie können PreparedStatement verwenden, um SQL-Injection in Java-Code zu vermeiden. Die Verwendung von PreparedStatement zum Ausführen von SQL-Abfragen bietet nicht nur eine bessere Leistung, sondern schützt auch Ihre Java- und J2EE-Anwendung vor SQL-Injection-Angriffen. In ähnlicher Weise sollten Sie, wenn Sie mehr auf Java EE- oder J2EE-Seite arbeiten, auch mit anderen Sicherheitsproblemen vertraut sein, einschließlich Sitzungsfixierungsangriffen oder Cross-Site-Scripting-Angriffen und deren Behebung. Dies sind einige Felder und Fragen, bei denen eine gute Antwort einen großen Unterschied in Ihrer Auswahl ausmachen kann.

Frage 8) Erzählen Sie mir von verschiedenen Referenztypen, die in Java verfügbar sind, z. B. WeakReference, SoftReference oder PhantomReference? und warum sollten Sie sie verwenden?

Nun, sie sind verschiedene Referenztypen aus Java.lang.ref-Paket und wird bereitgestellt, um Java Garbage Collector bei Problemen mit wenig Speicher zu unterstützen. Wenn Sie ein Objekt mit WeakReference als es für Garbage Collected, wenn es keine starken Referenzen gibt. Sie können später vom Garbage Collector zurückgewonnen werden, wenn der Speicher der JVM knapp wird.
Das Java.util.Wenn also nur Map die Referenz eines Objekts und keine andere enthält, können diese Objekte Garbage collected werden, wenn GC Speicher benötigt. Erfahren Sie mehr darüber, wie Sie mit Leistungsproblemen in Java umgehen.

core Java technical Interview Fragen und Antworten für erfahrene

Frage 9) Wie funktioniert die Get-Methode von HashMap in Java?

Ja, dies ist immer noch eine der beliebtesten Java-Kernfragen für Senior Developer Interviews. Sie können diese Frage auch in einer telefonischen Runde erwarten, gefolgt von vielen Folgefragen, wie in meinem Beitrag how does HashMap work in Java .
Die kurze Antwort auf diese Frage lautet, dass HashMap auf der Datenstruktur der Hash-Tabelle basiert und die hashCode() -Methode verwendet, um den Hash-Code zu berechnen, um die Position des Buckets im zugrunde liegenden Array zu finden, und die equals() -Methode, um das Objekt im selben Bucket im Falle einer Kollision zu suchen. Hier erfahren Sie mehr darüber, wie die get() -Methode von HashMap in Java funktioniert.

Frage 10) Welche zwei Methoden HashMap key Object implementieren sollte?

Dies ist eine der Follow-up-Fragen, über die ich in früheren Fragen gesprochen habe. Da das Arbeiten von HashMap auf der Datenstruktur der Hashtabelle basiert, muss jedes Objekt, das Sie als Schlüssel für HashMap oder eine andere Hash-basierte Sammlung verwenden möchten, z. B. Hashtable oder ConcurrentHashMap , die Methoden equals() und hashCode() implementieren.
Der hashCode() wird verwendet, um den Bucket-Speicherort zu finden, dh den Index des zugrunde liegenden Arrays, und die equals() -Methode wird verwendet, um das richtige Objekt in einer verknüpften Liste zu finden, die im Falle einer Kollision im Bucket gespeichert ist. Übrigens hat HashMap ab Java 8 auch begonnen, eine Baumdatenstruktur zum Speichern des Objekts im Falle einer Kollision zu verwenden, um die Worst-Case-Leistung von HashMap von O (n) auf O (logN) zu reduzieren. Lesen Sie den Artikel, um mehr darüber zu erfahren, wie HashMap handless Kollisionen in Java ausführt.

Frage 11) Warum sollte ein als Schlüssel verwendetes Objekt unveränderlich sein?

Dies ist ein weiteres Follow-up früherer Core Java-Interviewfragen. Es ist gut, die Tiefe des technischen Wissens der Kandidaten zu testen, indem Sie immer mehr Fragen zum selben Thema stellen. Wenn Sie über Unveränderlichkeit Bescheid wissen, können Sie diese Frage selbst beantworten. Die kurze Antwort auf diese Frage lautet, dass der Schlüssel unveränderlich sein sollte, damit die hashCode () -Methode immer denselben Wert zurückgibt.

Da der von der hashCode() -Methode zurückgegebene Hash-Code vom Inhalt des Objekts abhängt, dh von den Werten der Mitgliedsvariablen. Wenn ein Objekt veränderbar ist, können sich diese Werte ändern, ebenso wie der Hash-Code. Wenn dasselbe Objekt nach dem Einfügen des Werts in HashMap einen anderen Hash-Code zurückgibt, suchen Sie an verschiedenen Bucket-Speicherorten und können das Objekt nicht abrufen. Deshalb sollte ein Schlüsselobjekt unveränderlich sein. Es ist keine vom Compiler erzwungene Regel, aber Sie sollten sich als erfahrener Programmierer darum kümmern. Weitere Fragen zum Interview mit der Java Collection finden Sie im Artikel.

Frage 12) Wie erreicht ConcurrentHashMap seine Skalierbarkeit?

Manchmal wird diese Multithreading + Collection-Interviewfrage auch als Unterschied zwischen ConcurrentHashMap und Hashtable in Java gestellt. Das Problem mit synchronized HashMap oder Hashtable war, dass die gesamte Map gesperrt ist, wenn ein Thread eine Operation mit Map ausführt.
Das Java.util.ConcurrentHashMap Klasse löst dieses Problem durch eine Lock-Stripping-Technik, bei der die gesamte Karte an verschiedenen Segmenten gesperrt ist und nur ein bestimmtes Segment während des Schreibvorgangs gesperrt ist, nicht die gesamte Karte. Die ConcurrentHashMap erreicht ihre Skalierbarkeit auch, indem sie sperrenfreie Lesevorgänge ermöglicht, da read eine threadsichere Operation ist. Weitere Fragen zu Multithreading und Parallelität in Java finden Sie hier.

Frage 13) Wie teilen Sie ein Objekt zwischen Threads? oder wie übergibt man ein Objekt von einem Thread an einen anderen?

Es gibt mehrere Möglichkeiten, dies zu tun, z. Warteschlangen, Warteschlangen usw., aber BlockingQueue mit dem Producer-Consumer-Muster ist der einfachste Weg, ein Objekt von Thread zu Thread zu übergeben.

Frage 14) Wie finde ich heraus, ob Ihr Programm einen Deadlock hat?

Indem ich Thread (mit kill -3, mit JConsole oder VisualVM) nehme, schlage ich vor, diese Kern-Java-Interviewfrage detaillierter vorzubereiten, da der Interviewer definitiv gerne detaillierter geht, zB werden sie mit Fragen wie, haben Sie das wirklich in Ihrem Projekt gemacht oder nicht?

Frage 15) Wie vermeiden Sie Deadlocks beim Codieren?

Indem sichergestellt wird, dass Sperren geordnet geöffnet und freigegeben werden, finden Sie hier eine detaillierte Antwort auf diese Frage.
Das ist alles auf dieser Liste der Kern Java Interviewfragen für Senior-Entwickler und erfahrene Programmierer. Ich habe nicht viele Fragen zu anderen wichtigen Themen wie Ausnahmebehandlung, Garbage Collection-Tuning und JVM-Interna aufgenommen, was auch bei Java-Programmierern mit 5 bis 6 Jahren Erfahrung sehr beliebt ist.
Übrigens, wenn Sie keine Antwort auf eine dieser Java-Kernfragen finden, lassen Sie es mich wissen. Ich kann den Beitrag mit einer detaillierteren Option aktualisieren, basierend auf der Anfrage meines Lesers.
Weiterführende Informationen
Die komplette Java Masterclass
Java Fundamentals: Die Java-Sprache
Verwandte Java-Interviewfragen zu anderen Themen

  • Java-Fragen für Telefonbildschirm-Interviews (Liste)
  • Thread- und Parallelitätsfragen aus Java-Interviews (Liste)
  • Java Enum Interview Fragen und Antworten (Liste)
  • Java OOP Interview Fragen mit Antworten (Liste)
  • Spring MVC Interview Fragen und Antworten (Liste)
  • Hibernate Interview Fragen mit Antworten (Liste)
  • JDBC Interview Fragen und Antworten (Liste)
  • Array Concept Interview Fragen in Java (Liste)
  • RESTful Web Service Interview Fragen (Liste)
  • Servlet und JSP Interview Fragen und Antworten (Liste)
  • Java Web Service Interview Fragen und Antworten (Liste)