Eine Liste häufig gestellter Java-Fragen aus der Programmierung von Vorstellungsgesprächen.

Hallo zusammen! In den letzten Jahren habe ich viele Fragen und Diskussionen zu Java-Interviews einzeln geteilt. Viele meiner Leser haben darum gebeten, dass ich sie zusammenbringe, damit sie sie an derselben Stelle haben können. Dieser Beitrag ist das Ergebnis davon.
Dieser Artikel enthält mehr als 50 Fragen zu Java-Interviews, die alle wichtigen Themen wie grundlegende Java-Grundlagen, Java Collection Framework, Java Multithreading und Parallelität, Java IO, JDBC, JVM-Interna, Codierungsprobleme, objektorientierte Programmierung usw. abdecken.
Die Fragen werden auch aus verschiedenen Interviews aufgegriffen und sind keineswegs sehr schwierig. Möglicherweise haben Sie sie bereits in Ihrem Telefon oder in einer persönlichen Interviewrunde gesehen.
Die Fragen sind auch sehr nützlich, um wichtige Themen wie Multithreading und Sammlungen zu überprüfen. Ich habe auch einige nützliche Ressourcen für weiteres Lernen und Verbessern wie The Complete Java MasterClass freigegeben, um Lücken in Ihren Java-Kenntnissen zu schließen.
Worauf warten wir noch? Hier ist die Liste einiger der am häufigsten gestellten Java-Fragen in Interviews für Anfänger und erfahrene Java-Entwickler.
50+ Java Interview Fragen für 2 bis 3 Jahre Erfahrene Programmierer
Also, ohne mehr Zeit zu verschwenden, hier ist meine Liste einiger der häufig gestellten Fragen zum Core Java-Interview für Programmierer für Anfänger. Diese Liste konzentriert sich auf Anfänger und weniger erfahrene Entwickler, wie jemanden mit 2 bis 3 Jahren Erfahrung in Java.
1) Wie erreicht Java die Plattformunabhängigkeit? (Antworten)
Hinweis: Bytecode und Java Virtual Machine
2) Was ist ClassLoader
in Java? (Antworten)
Hinweis: Teil der JVM, der Bytecodes für Klassen lädt. Sie können Ihre eigenen schreiben.
3) Schreiben Sie ein Java-Programm, um zu überprüfen, ob eine Zahl gerade oder ungerade ist. (Antworten)
Hinweis: Sie können den bitweisen Operator wie bitweises UND verwenden. Denken Sie daran, dass sogar die Zahl am Ende im Binärformat Null und eine ungerade Zahl am Ende 1 hat.
4) Unterschied zwischen ArrayList
und HashSet
in Java? (Antworten)
Hinweis: Alle Unterschiede zwischen List
und Set
sind hier anwendbar, z. B. Reihenfolge, Duplikate, Zufallssuche usw. Weitere Informationen zu ArrayList, HashSet und anderen wichtigen Sammlungen in Java finden Sie unter Java-Grundlagen: Sammlungen von Richard Warburton.

5) Was ist doppelt geprüftes Sperren in Singleton? (Antworten)
Hinweis: Zweimal prüfen, ob Instanzen initialisiert sind oder nicht, erstens ohne Sperre und zweitens mit Sperre.
6) Wie erstellt man threadsicheres Singleton in Java? (Antworten)
Hinweis: Viele Möglichkeiten, z. B. die Verwendung von Enum oder die Verwendung eines doppelt überprüften Sperrmusters oder die Verwendung einer verschachtelten statischen Klasse.
7) Wann wird die flüchtige Variable in Java verwendet? (Antworten)
Hinweis: Wenn Sie die JVM anweisen müssen, dass eine Variable von mehreren Threads geändert werden kann, und der JVM einen Hinweis geben müssen, der ihren Wert nicht zwischenspeichert.
8) Wann wird eine transiente Variable in Java verwendet? (Antworten)
Hinweis: Wenn Sie eine Variable in einer Klasse nicht serialisierbar machen möchten, die die Schnittstelle Serializable implementiert. Mit anderen Worten, Sie können es für eine Variable verwenden, deren Wert Sie nicht speichern möchten. Weitere Informationen zu transienten Variablen in Java finden Sie unter Die vollständige Java MasterClass .
9) Unterschied zwischen der transienten und der flüchtigen Variablen in Java? (Antworten)
Hinweis: Ganz anders, einer wird im Rahmen der Serialisierung verwendet, während der andere in der Parallelität verwendet wird.
10) Unterschied zwischen Serializable und Externalizable in Java? (Antworten)
Tipp: Externalizable gibt Ihnen mehr Kontrolle über den Serialisierungsprozess.
11) Können wir die private Methode in Java überschreiben? (Antworten)
Hinweis: Nein, da es in der Unterklasse nicht sichtbar ist, eine Hauptanforderung zum Überschreiben einer Methode in Java.
12) Unterschied zwischen Hashtable
und HashMap
in Java? (Antworten)
tipp: mehrere aber am wichtigsten ist Hashtable
, was synchronisiert ist, während HashMap
es nicht ist. Es ist auch Vermächtnis und langsam im Vergleich zu HashMap
.
13) Unterschied zwischen List
und Set
in Java? (Antworten)
Hinweis: List
ist bestellt und erlaubt Duplikate. Set
ist ungeordnet und erlaubt keine doppelten Elemente.
14) Unterschied zwischen ArrayList
und Vector
in Java (Antwort)
Tipp: Viele, aber das Wichtigste ist, dass ArrayList
es nicht synchronisiert und schnell ist, während Vector
es synchronisiert und langsam ist. Es ist auch wie eine Legacy-Klasse Hashtable
.
15) Unterschied zwischen Hashtable
und ConcurrentHashMap
in Java? (Antworten)
Hinweis: skalierbarer. Weitere Informationen finden Sie unter Java-Grundlagen: Sammlungen von Richard Warburton.
16) Wie wird ConcurrentHashMap
Skalierbarkeit erreicht? (Antworten)
Tipp: Teilen Sie die Karte in Segmente und sperren Sie sie nur während des Schreibvorgangs.
17) Welche zwei Methoden werden Sie überschreiben, damit eine Object
wie Key
in verwendet wird HashMap
? (Antworten)
Hinweis: Gleich und Hashcode
18) Unterschied zwischen Warten und Schlafen in Java? (Antworten)
Hinweis: Die wait()
Methode gibt die Sperre oder den Monitor frei, während der Ruhezustand dies nicht tut.
19) Unterschied zwischen notify
und notifyAll
in Java? (Antworten)
Hinweis: notify
Benachrichtigt, dass ein zufälliger Thread auf diese Sperre wartet, während notifyAll
alle Threads, die auf einen Monitor warten, informiert werden. Wenn Sie sicher sind, dass nur ein Thread wartet notify
, verwenden Sie oder notifyAll
ist besser. Siehe Threading Essentials-Minikursvon Java-Champion Heinz Kabutz, um mehr über die Grundlagen des Einfädelns zu erfahren.
20) Warum überschreiben Sie Hashcode zusammen mit equals()
in Java? (Antworten)
Hinweis: Konformität mit Gleichheits- und Hashcode-Verträgen, die erforderlich sind, wenn Sie Ihr Objekt in Sammlungsklassen speichern möchten, z . B. HashMap
oder ArrayList
.
21) Was ist der Lastfaktor der HashMap
Mittel? (Antworten)
Hinweis: Der Schwellenwert, der HashMap
die HashMap
Größenänderung auslöst, beträgt im Allgemeinen 0,75. Dies bedeutet, dass Sie die Größe selbst ändern, wenn sie zu 75 Prozent voll ist.
22) Unterschied zwischen ArrayList
und LinkedList
in Java? (Antworten)
Hinweis: Wie bei einem Array und einer verknüpften Liste ermöglicht eine zufällige Suche, die andere nicht. Das Einfügen und Löschen in der verknüpften Liste ist einfach, aber die Suche in einem Array ist einfach. Weitere Informationen zur wesentlichen Struktur von Sammlungsdaten in Java finden Sie unter Java-Grundlagen: Sammlungen , Richard Warburtons Kurs zu Pluralsight.
23) Unterschied zwischen CountDownLatch
und CyclicBarrier
in Java? (Antworten)
Hinweis: Sie können wiederverwenden, CyclicBarrier
nachdem die Barriere durchbrochen wurde, aber Sie können nicht wiederverwenden, CountDownLatch
nachdem die Anzahl Null erreicht hat.
24) Wann verwenden Sie Runnable
vs Thread
in Java? (Antworten)
Hinweis: immer
25) Was bedeutet es, dass Enum in Java typsicher ist? (Antworten)
Hinweis: Dies bedeutet, dass Sie einer Enum-Variablen keine Instanz eines anderen Enum-Typs zuweisen können. Wenn Sie beispielsweise eine Variable wie DayOfWeek
day haben, können Sie ihr keinen Wert aus DayOfMonth
enum zuweisen .
26) Wie funktioniert Autoboxing von Integer in Java? (Antworten)
Hinweis: Mit der valueOf()
Methode in Java.
27) Unterschied zwischen PATH
und Classpath
in Java? (Antworten)
Hinweis: PATH
Wird vom Betriebssystem verwendet, während Classpath
JVM zum Auffinden von Java-Binärdateien verwendet wird, z. B. JAR-Dateien oder Klassendateien. Siehe Java - Grundlagen: Die Core - Plattform , um zu erfahren PATH
, Classpath
und anderes Java - Umgebungsvariable.

28) Unterschied zwischen Methodenüberladung und Überschreiben in Java? (Antworten)
Hinweis: Das Überschreiben erfolgt in der Unterklasse, während das Überladen in derselben Klasse erfolgt. Das Überschreiben ist auch eine Laufzeitaktivität, während das Überladen zur Kompilierungszeit behoben wird.
29) Wie verhindern Sie, dass eine Klasse in Java untergeordnet wird? (Antworten)
Hinweis: Machen Sie einfach den Konstruktor privat
30) Wie können Sie verhindern, dass Ihre Klasse von Ihrem Kunden verwendet wird? (Antworten)
Hinweis: Machen Sie den Konstruktor privat oder lösen Sie eine Ausnahme vom Konstruktor aus
31) Unterschied zwischen StringBuilder
und StringBuffer
in Java? (Antworten)
Hinweis: StringBuilder
wird nicht synchronisiert, während StringBuffer
synchronisiert wird.
32) Unterschied zwischen Polymorphismus und Vererbung in Java? (Antworten)
Hinweis: Die Vererbung ermöglicht die Wiederverwendung von Code und baut die Beziehung zwischen Klassen auf, die vom Polymorphismus benötigt wird und dynamisches Verhalten bietet. Siehe Java-Grundlagen: Objektorientiertes Designum mehr über OOP-Funktionen zu erfahren.
33) Können wir statische Methoden in Java überschreiben? (Antworten)
Hinweis: Nein, da das Überschreiben zur Laufzeit aufgelöst wird, während der statische Methodenaufruf zur Kompilierungszeit aufgelöst wird.
34) Können wir in Java auf die private Methode zugreifen? (Antworten)
Hinweis: Ja, in derselben Klasse, aber nicht außerhalb der Klasse
35) Unterschied zwischen Schnittstelle und abstrakter Klasse in Java? (Antworten)
Hinweis: Ab Java 8 ist der Unterschied unscharf. Eine Java-Klasse kann jedoch weiterhin mehrere Schnittstellen implementieren, jedoch nur eine Klasse erweitern.
36) Unterschied zwischen DOM- und SAX-Parser in Java? (Antworten)
Hinweis: DOM lädt die gesamte XML-Datei in den Speicher, SAX nicht. Es ist ein ereignisbasierter Parser und kann zum Parsen einer großen Datei verwendet werden. DOM ist jedoch schnell und sollte für kleine Dateien bevorzugt werden.
37) Unterschied zwischen throw und throw Schlüsselwort in Java? (Antworten)
Hinweis: Throws deklarieren, welche Ausnahme eine Methode im Fehlerfall auslösen kann, aber das Schlüsselwort throw löst tatsächlich eine Ausnahme aus. Weitere Informationen zur Ausnahmebehandlung in Java finden Sie unter Java-Grundlagen: Ausnahmebehandlung .

38) Unterschied zwischen ausfallsicheren und ausfallsicheren Iteratoren in Java? (Antworten)
Hinweis: Fail-Safe nicht werfen , ConcurrentModificationException
während fail-fast
tut , wenn sie eine äußere Veränderung der zugrunde liegenden Sammlung erfassen , während über sie iterieren.
39) Unterschied zwischen Iterator und Aufzählung in Java? (Antworten)
Hinweis: Iterator bietet Ihnen auch die Möglichkeit, ein Element während der Iteration zu entfernen, während die Aufzählung dies nicht zulässt.
40) Was ist IdentityHashMap
in Java? (Antworten)
Hinweis: A Map
, der den ==
Gleichheitsoperator verwendet, um die Gleichheit anstelle der equals()
Methode zu überprüfen .
41) Was ist der String
Pool in Java? (Antworten)
Hinweis: Ein Pool von String
Literalen. Denken Sie daran, dass es in JDK 7 aus dem Perm-Speicher auf den Heap verschoben wurde.
42) Kann eine Serializable
Klasse ein nicht serialisierbares Feld in Java enthalten? (Antworten)
Hinweis: Ja, aber Sie müssen es entweder statisch oder vorübergehend machen.
43) Unterschied zwischen diesem und Super in Java? (Antworten)
Hinweis: Dies bezieht sich auf die aktuelle Instanz, während Super auf eine Instanz der Oberklasse verweist.
44) Unterschied zwischen Comparator
und Comparable
in Java? (Antworten)
Hinweis: Comparator
Definiert die benutzerdefinierte Reihenfolge, während Comparable
die natürliche Reihenfolge der Objekte definiert wird, z. B. die alphabetische Reihenfolge für String
. Weitere Informationen zum Sortieren in Java finden Sie unter Die vollständige Java MasterClass .

45) Unterschied zwischen java.util.Date
und java.sql.Date
in Java? (Antworten)
Hinweis: Ersteres enthält sowohl Datum als auch Uhrzeit, während später nur Datumsteil enthält.
46) Warum werden Object
in Java Klassen- und Benachrichtigungsmethoden in der Klasse deklariert ? (Antworten)
Hinweis: Weil sie eine Sperre benötigen, die nur für ein Objekt verfügbar ist.
47) Warum unterstützt Java keine Mehrfachvererbungen? (Antworten)
Hinweis: Es wird aufgrund einer schlechten Erfahrung mit C ++ nicht unterstützt, aber mit Java 8 in gewissem Sinne - nur Mehrfachvererbungen von Type
werden derzeit in Java nicht unterstützt.
48) Unterschied zwischen aktivierter und nicht aktivierter Ausnahme in Java? (Antworten)
Hinweis: Wenn diese Option aktiviert ist, müssen Sie die Ausnahme mit dem Catch-Block behandeln. Wenn die Option deaktiviert ist, liegt es an Ihnen. Kompilieren wird Sie nicht stören.
49) Unterschied zwischen Fehler und Ausnahme in Java? (Antworten)
Hinweis: Ich bin es leid zu tippen, bitte überprüfen Sie die Antwort
50) Unterschied zwischen Race Condition und Deadlock in Java? (Antworten)
Hinweis: Beides sind Fehler, die in einer gleichzeitigen Anwendung auftreten. Einer tritt aufgrund der Thread-Planung auf, während andere aufgrund einer schlechten Codierung auftreten. Weitere Informationen zu Deadlock, Race Conditions und anderen Multithreading-Problemen finden Sie unter Multithreading und Parallel Computing in Java.
Schlussbemerkungen
Danke, du hast es bis zum Ende des Artikels geschafft ... Viel Glück mit deinem Programmierinterview! Es wird sicherlich nicht einfach sein, aber wenn Sie diese Roadmap und Anleitung befolgen, sind Sie dem DevOps-Ingenieur einen Schritt näher gekommen.
Wenn Ihnen dieser Artikel gefällt, teilen Sie ihn bitte mit Ihren Freunden und Kollegen und vergessen Sie nicht, javinpaul auf Twitter zu folgen!
Zusätzliche Ressourcen
- Java Interview Guide: Über 200 Interviewfragen und -antworten
- Spring Framework Interview Guide - Über 200 Fragen und Antworten
- Vorbereitung auf ein Vorstellungsgespräch Von John Sonmez
- Java-Programmierinterview von Markham
- Das Coding-Interview knacken - 189 Fragen und Antworten
- Datenstruktur- und Algorithmusanalyse für Vorstellungsgespräche
- 130+ Java Interview Fragen der letzten 5 Jahre
PSS - Ich habe keine Antwort auf die Interviewfragen im Bild "Wie viele String-Objekte werden im Code erstellt?" Kannst du raten und erklären?