Überprüfen Sie diese 50 Fragen, um Ihr Java-Programmierinterview zu knacken

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 ClassLoaderin 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 ArrayListund HashSetin Java? (Antworten)

Hinweis: Alle Unterschiede zwischen Listund Setsind 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 Hashtableund HashMapin Java? (Antworten)

tipp: mehrere aber am wichtigsten ist Hashtable, was synchronisiert ist, während HashMapes nicht ist. Es ist auch Vermächtnis und langsam im Vergleich zu HashMap.

13) Unterschied zwischen Listund Set in Java? (Antworten)

Hinweis: Listist bestellt und erlaubt Duplikate. Setist ungeordnet und erlaubt keine doppelten Elemente.

14) Unterschied zwischen ArrayListund Vectorin Java (Antwort)

Tipp: Viele, aber das Wichtigste ist, dass ArrayListes nicht synchronisiert und schnell ist, während Vectores synchronisiert und langsam ist. Es ist auch wie eine Legacy-Klasse Hashtable.

15) Unterschied zwischen Hashtableund ConcurrentHashMapin Java? (Antworten)

Hinweis: skalierbarer. Weitere Informationen finden Sie unter Java-Grundlagen: Sammlungen von Richard Warburton.

16) Wie wird ConcurrentHashMapSkalierbarkeit 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 Objectwie Keyin 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 notifyund notifyAllin Java? (Antworten)

Hinweis: notifyBenachrichtigt, dass ein zufälliger Thread auf diese Sperre wartet, während notifyAllalle Threads, die auf einen Monitor warten, informiert werden. Wenn Sie sicher sind, dass nur ein Thread wartet notify, verwenden Sie oder notifyAllist 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. HashMapoder ArrayList.

21) Was ist der Lastfaktor der HashMapMittel? (Antworten)

Hinweis: Der Schwellenwert, der HashMapdie HashMapGröß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 ArrayListund LinkedListin 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 CountDownLatchund CyclicBarrierin Java? (Antworten)

Hinweis: Sie können wiederverwenden, CyclicBarriernachdem die Barriere durchbrochen wurde, aber Sie können nicht wiederverwenden, CountDownLatchnachdem die Anzahl Null erreicht hat.

24) Wann verwenden Sie Runnablevs Threadin 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 DayOfWeekday haben, können Sie ihr keinen Wert aus DayOfMonthenum zuweisen .

26) Wie funktioniert Autoboxing von Integer in Java? (Antworten)

Hinweis: Mit der valueOf()Methode in Java.

27) Unterschied zwischen PATHund Classpathin Java? (Antworten)

Hinweis: PATHWird vom Betriebssystem verwendet, während ClasspathJVM zum Auffinden von Java-Binärdateien verwendet wird, z. B. JAR-Dateien oder Klassendateien. Siehe Java - Grundlagen: Die Core - Plattform , um zu erfahren PATH, Classpathund 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 StringBuilderund StringBufferin Java? (Antworten)

Hinweis: StringBuilderwird nicht synchronisiert, während StringBuffersynchronisiert 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 , ConcurrentModificationExceptionwährend fail-fasttut , 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 IdentityHashMapin Java? (Antworten)

Hinweis: A Map, der den ==Gleichheitsoperator verwendet, um die Gleichheit anstelle der equals()Methode zu überprüfen .

41) Was ist der StringPool in Java? (Antworten)

Hinweis: Ein Pool von StringLiteralen. Denken Sie daran, dass es in JDK 7 aus dem Perm-Speicher auf den Heap verschoben wurde.

42) Kann eine SerializableKlasse 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 Comparatorund Comparablein Java? (Antworten)

Hinweis: ComparatorDefiniert die benutzerdefinierte Reihenfolge, während Comparabledie 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.Dateund java.sql.Datein Java? (Antworten)

Hinweis: Ersteres enthält sowohl Datum als auch Uhrzeit, während später nur Datumsteil enthält.

46) Warum werden Objectin 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 Typewerden 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
PS - Wenn Sie KOSTENLOSE Ressourcen zum Erlernen von Java benötigen, können Sie diese Liste der kostenlosen Java-Kurse lesen , um mit der Vorbereitung zu beginnen.

PSS - Ich habe keine Antwort auf die Interviewfragen im Bild "Wie viele String-Objekte werden im Code erstellt?" Kannst du raten und erklären?