Top 100 Fragen und Antworten zu Java-Interviews (PDF herunterladen)

Inhaltsverzeichnis:

Anonim

PDF Herunterladen

Wir haben die am häufigsten gestellten Fragen und Antworten zu Java-Interviews zusammengestellt, mit denen Sie sich auf die grundlegenden Fragen zu Java-Interviews vorbereiten können, die Ihnen ein Interviewer während Ihres Interviews möglicherweise stellt. In dieser Liste der grundlegenden Java-Interviewfragen haben wir alle häufig gestellten grundlegenden und fortgeschrittenen Core Java-Interviewfragen mit detaillierten Antworten behandelt, damit Sie das Vorstellungsgespräch besser klären können.

Die folgende Liste enthält 100 wichtige Fragen zu Java-Kerninterviews für Erstsemester sowie Fragen und Antworten zu Java-Interviews für erfahrene Programmierer, um sie auf das Interview vorzubereiten. Diese detaillierte Anleitung mit Interviewfragen für die Java-Programmierung hilft Ihnen dabei, Ihr Vorstellungsgespräch einfach zu knacken.

Fragen und Antworten zum Java-Kerninterview für Erstsemester und Erfahrene

Q1. Was ist der Unterschied zwischen einer inneren Klasse und einer Unterklasse?

Antwort: Eine innere Klasse ist eine Klasse, die in einer anderen Klasse verschachtelt ist. Eine innere Klasse hat Zugriffsrechte für die Klasse, die sie verschachtelt, und sie kann auf alle Variablen und Methoden zugreifen, die in der äußeren Klasse definiert sind.

Eine Unterklasse ist eine Klasse, die von einer anderen Klasse namens Superklasse erbt. Die Unterklasse kann auf alle öffentlichen und geschützten Methoden und Felder ihrer Superklasse zugreifen.

Q2. Was sind die verschiedenen Zugriffsspezifizierer für Java-Klassen?

Antwort: In Java sind Zugriffsspezifizierer die Schlüsselwörter, die vor einem Klassennamen verwendet werden, der den Zugriffsbereich definiert. Die Arten von Zugriffsspezifizierern für Klassen sind:

1. Öffentlich: Klasse, Methode, Feld ist von überall zugänglich.

2. Geschützt: Auf die Methode kann auf Field von derselben Klasse aus zugegriffen werden, zu der sie gehören, oder von den Unterklassen und von der Klasse desselben Pakets, jedoch nicht von außen.

3. Standard: Auf Methode, Feld und Klasse kann nur von demselben Paket und nicht von außerhalb des nativen Pakets zugegriffen werden.

4. Privat: Auf Methode, Feld kann von derselben Klasse aus zugegriffen werden, zu der sie gehören.

Q3. Was ist der Zweck von statischen Methoden und statischen Variablen?

Antwort: Wenn eine Methode oder Variable für mehrere Objekte einer Klasse freigegeben werden muss, anstatt für jedes Objekt separate Kopien zu erstellen, verwenden wir das statische Schlüsselwort, um eine Methode oder Variable für alle Objekte gemeinsam zu nutzen.

Q4. Was ist Datenkapselung und welche Bedeutung hat sie?

Antwort: Die Kapselung ist ein Konzept in der objektorientierten Programmierung zum Kombinieren von Eigenschaften und Methoden in einer Einheit.

Die Kapselung hilft Programmierern, einen modularen Ansatz für die Softwareentwicklung zu verfolgen, da jedes Objekt seine eigenen Methoden und Variablen hat und seine Funktionen unabhängig von anderen Objekten erfüllt. Die Kapselung dient auch dem Ausblenden von Daten.

Q5. Was ist eine Singleton-Klasse? Geben Sie ein praktisches Beispiel für seine Verwendung.

Eine Singleton-Klasse in Java kann nur eine Instanz haben und daher gehören alle ihre Methoden und Variablen zu nur einer Instanz. Das Singleton-Klassenkonzept ist nützlich in Situationen, in denen die Anzahl der Objekte für eine Klasse begrenzt werden muss.

Das beste Beispiel für ein Singleton-Nutzungsszenario ist, wenn aufgrund einiger Treiberbeschränkungen oder aufgrund von Lizenzproblemen nur eine einzige Verbindung zu einer Datenbank besteht.

Q6. Was sind Schleifen in Java? Was sind drei Arten von Schleifen?

Antwort: Looping wird beim Programmieren verwendet, um eine Anweisung oder einen Anweisungsblock wiederholt auszuführen. In Java gibt es drei Arten von Schleifen:

1) Für Schleifen

For-Schleifen werden in Java verwendet, um Anweisungen für eine bestimmte Anzahl von Malen wiederholt auszuführen. For-Schleifen werden verwendet, wenn dem Programmierer bekannt ist, wie oft die Anweisungen ausgeführt werden sollen.

2) While-Schleifen

Die while-Schleife wird verwendet, wenn bestimmte Anweisungen wiederholt ausgeführt werden müssen, bis eine Bedingung erfüllt ist. In while-Schleifen wird die Bedingung zuerst überprüft, bevor Anweisungen ausgeführt werden.

3) Do While-Schleifen

Do While-Schleife ist dieselbe wie While-Schleife, nur dass diese Bedingung nach der Ausführung des Anweisungsblocks überprüft wird. Im Falle einer do while-Schleife werden Anweisungen daher mindestens einmal ausgeführt.

F7: Was ist eine Endlosschleife? Wie wird die Endlosschleife deklariert?

Antwort: Eine Endlosschleife läuft ohne Bedingung und läuft unendlich. Eine Endlosschleife kann durch Definieren einer beliebigen Unterbrechungslogik im Hauptteil der Anweisungsblöcke unterbrochen werden.

Die Endlosschleife wird wie folgt deklariert:

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

Q8. Was ist der Unterschied zwischen der Anweisung continue und break?

Antwort: break and continue sind zwei wichtige Schlüsselwörter, die in Loops verwendet werden. Wenn ein Schlüsselwort break in einer Schleife verwendet wird, wird die Schleife sofort unterbrochen, während bei Verwendung des Schlüsselworts continue die aktuelle Iteration unterbrochen wird und die Schleife mit der nächsten Iteration fortgesetzt wird.

Im folgenden Beispiel wird die Schleife unterbrochen, wenn der Zähler 4 erreicht.

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

Im folgenden Beispiel springt die Schleife zur nächsten Iteration, wenn der Zähler 4 erreicht, und alle Anweisungen nach dem Schlüsselwort continue werden für die aktuelle Iteration übersprungen.

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");}

Q9. Was ist der Unterschied zwischen Double- und Float-Variablen in Java?

Antwort: In Java benötigt float 4 Bytes im Speicher, während Double 8 Bytes im Speicher benötigt. Float ist eine Gleitkomma-Dezimalzahl mit einfacher Genauigkeit, während Double eine Dezimalzahl mit doppelter Genauigkeit ist.

Q10. Was ist das endgültige Schlüsselwort in Java? Gib ein Beispiel.

Antwort: In Java wird eine Konstante mit dem Schlüsselwort Final deklariert. Der Wert kann nur einmal zugewiesen werden und nach der Zuweisung kann der Wert einer Konstante nicht mehr geändert werden.

Im folgenden Beispiel wird eine Konstante mit dem Namen const_val deklariert und avalue zugewiesen:

Private Final int const_val = 100

Wenn eine Methode als endgültig deklariert wird, kann sie NICHT von den Unterklassen überschrieben werden. Diese Methode ist schneller als jede andere Methode, da sie zum festgelegten Zeitpunkt aufgelöst wird.

Wenn eine Klasse als endgültig deklariert wird, kann sie nicht in Unterklassen unterteilt werden. Beispiel String-, Integer- und andere Wrapper-Klassen.

Q11. Was ist ein ternärer Operator? Gib ein Beispiel.

Antwort: Der ternäre Operator, auch bedingter Operator genannt, wird verwendet, um basierend auf einer Booleschen Wertauswertung zu entscheiden, welcher Wert einer Variablen zugewiesen werden soll. Es wird bezeichnet als?

Wenn im folgenden Beispiel der Rang 1 ist, wird dem Status der Wert "Fertig" zugewiesen, andernfalls "Ausstehend".

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

F12: Wie können Sie in Java Zufallszahlen generieren?

Ans:

  • Mit Math.random () können Sie Zufallszahlen im Bereich größer oder gleich 0,1 und kleiner als 1,0 generieren
  • Verwenden der Zufallsklasse im Paket java.util

Q13. Was ist der Standardschalterfall? Ein Beispiel geben.

Antwort: In einer switch-Anweisung wird der Standardfall ausgeführt, wenn keine andere switch-Bedingung übereinstimmt. Der Standardfall ist ein optionaler Fall. Er kann nur deklariert werden, wenn alle anderen Switch-Fälle codiert wurden.

Im folgenden Beispiel wird der Standardfall verwendet, wenn die Punktzahl nicht 1 oder 2 ist.

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");}}}

Q14. Was ist die Basisklasse in Java, von der alle Klassen abgeleitet sind?

Antwort: java.lang.object

Q15. Kann die main () -Methode in Java Daten zurückgeben?

Antwort: In Java kann die main () -Methode keine Daten zurückgeben und wird daher immer mit einem ungültigen Rückgabetyp deklariert.

Q16. Was sind Java-Pakete? Welche Bedeutung haben Pakete?

Antwort: In Java ist das Paket eine Sammlung von Klassen und Schnittstellen, die zusammen gebündelt sind, da sie miteinander in Beziehung stehen. Die Verwendung von Paketen hilft Entwicklern, den Code zu modularisieren und den Code für eine ordnungsgemäße Wiederverwendung zu gruppieren. Sobald Code in Pakete gepackt wurde, kann er in andere Klassen importiert und verwendet werden.

Q17. Können wir eine Klasse als abstrakt deklarieren, ohne eine abstrakte Methode zu haben?

Antwort: Ja, wir können eine abstrakte Klasse erstellen, indem wir das abstrakte Schlüsselwort vor dem Klassennamen verwenden, auch wenn es keine abstrakte Methode gibt. Wenn eine Klasse jedoch nur eine abstrakte Methode hat, muss sie als abstrakt deklariert werden, da sonst ein Fehler auftritt.

Q18. Was ist der Unterschied zwischen einer abstrakten Klasse und einer Schnittstelle in Java?

Antwort: Der Hauptunterschied zwischen einer abstrakten Klasse und einer Schnittstelle besteht darin, dass eine Schnittstelle nur eine Deklaration öffentlicher statischer Methoden ohne konkrete Implementierung besitzen kann, während eine abstrakte Klasse Mitglieder mit beliebigen Zugriffsspezifizierern (öffentlich, privat usw.) mit oder ohne konkrete Implementierung haben kann.

Ein weiterer wesentlicher Unterschied bei der Verwendung von abstrakten Klassen und Schnittstellen besteht darin, dass eine Klasse, die eine Schnittstelle implementiert, alle Methoden der Schnittstelle implementieren muss, während eine Klasse, die von einer abstrakten Klasse erbt, nicht die Implementierung aller Methoden ihrer Superklasse erfordert.

Eine Klasse kann mehrere Schnittstellen implementieren, aber nur eine abstrakte Klasse erweitern.

Q19. Was sind die Auswirkungen von Schnittstellen auf die Leistung gegenüber abstrakten Klassen?

Antwort: Schnittstellen weisen im Vergleich zu abstrakten Klassen eine geringere Leistung auf, da für Schnittstellen zusätzliche Indirektionen erforderlich sind. Ein weiterer Schlüsselfaktor, den Entwickler berücksichtigen müssen, ist, dass jede Klasse nur eine abstrakte Klasse erweitern kann, während eine Klasse viele Schnittstellen implementieren kann.

Die Verwendung von Schnittstellen stellt auch eine zusätzliche Belastung für die Entwickler dar, da jedes Mal, wenn eine Schnittstelle in einer Klasse implementiert wird. Entwickler ist gezwungen, jede einzelne Methode der Schnittstelle zu implementieren.

Q20. Importiert das Importieren eines Pakets seine Unterpakete auch in Java?

Antwort: Wenn in Java ein Paket importiert wird, werden seine Unterpakete nicht importiert, und der Entwickler muss sie bei Bedarf separat importieren.

Wenn ein Entwickler beispielsweise eine Paketuniversität * importiert, werden alle Klassen im Paket "Universität" geladen, aber keine Klassen aus dem Unterpaket. Um die Klassen aus ihrem Unterpaket (z. B. Abteilung) zu laden, muss der Entwickler sie explizit wie folgt importieren:

University.department importieren. *

Q21. Können wir die Hauptmethode unserer Klasse als privat deklarieren?

Antwort: In Java muss die Hauptmethode öffentlich statisch sein, damit eine Anwendung korrekt ausgeführt werden kann. Wenn die Hauptmethode als privat deklariert ist, wird der Entwickler keinen Kompilierungsfehler erhalten, sie wird jedoch nicht ausgeführt und es wird ein Laufzeitfehler ausgegeben.

Q22. Wie können wir Argumente als Referenz an eine Funktion übergeben, anstatt sie als Wert zu übergeben?

Antwort: In Java können wir Argumente nur nach Wert und nicht nach Referenz an eine Funktion übergeben.

Q23. Wie wird ein Objekt in Java serialisiert?

Antwort: In Java wird von der Klasse eine Schnittstelle mit dem Namen Serializable implementiert, um ein Objekt durch Serialisierung in einen Bytestream umzuwandeln. Alle Objekte einer Klasse, die eine serialisierbare Schnittstelle implementieren, werden serialisiert und ihr Status wird im Byte-Stream gespeichert.

Q24. Wann sollten wir die Serialisierung verwenden?

Antwort: Die Serialisierung wird verwendet, wenn Daten über das Netzwerk übertragen werden müssen. Bei Verwendung der Serialisierung wird der Status des Objekts gespeichert und in einen Bytestrom konvertiert. Der Bytestrom wird über das Netzwerk übertragen und das Objekt wird am Ziel neu erstellt.

Q25. Ist es obligatorisch, dass auf einen Try-Block ein Catch-Block in Java für die Ausnahmebehandlung folgt?

Antwort: Auf den Try-Block muss entweder der Catch-Block oder der finally-Block oder beides folgen. Jede vom try-Block ausgelöste Ausnahme muss entweder im catch-Block abgefangen werden oder es müssen bestimmte Aufgaben ausgeführt werden, bevor der Code-Abbruch in den finally-Block eingefügt wird.

Q26. Gibt es eine Möglichkeit, den Ausnahmeblock "Endlich" zu überspringen, selbst wenn im Ausnahmeblock eine Ausnahme auftritt?

Antwort: Wenn im Try-Block eine Ausnahme ausgelöst wird, wird die Steuerung an den catch-Block übergeben, sofern sie andernfalls vorhanden ist, um den Block endgültig zu blockieren. Der finally-Block wird immer ausgeführt, wenn eine Ausnahme auftritt. Die einzige Möglichkeit, die Ausführung von Anweisungen im finally-Block zu vermeiden, besteht darin, den Code zwangsweise abzubrechen, indem am Ende des try-Blocks die folgende Codezeile geschrieben wird:

System.exit(0);

Q27. Wann wird der Konstruktor einer Klasse aufgerufen?

Antwort: Der Konstruktor einer Klasse wird jedes Mal aufgerufen, wenn ein Objekt mit einem neuen Schlüsselwort erstellt wird.

In der folgenden Klasse werden beispielsweise zwei Objekte mit einem neuen Schlüsselwort erstellt, und daher wird der Konstruktor zweimal aufgerufen.

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();}}

Q28. Kann eine Klasse mehrere Konstruktoren haben?

Antwort: Ja, eine Klasse kann mehrere Konstruktoren mit unterschiedlichen Parametern haben. Welcher Konstruktor für die Objekterstellung verwendet wird, hängt von den Argumenten ab, die beim Erstellen der Objekte übergeben wurden.

Q29. Können wir statische Methoden einer Klasse überschreiben?

Antwort: Wir können statische Methoden nicht überschreiben. Statische Methoden gehören zu einer Klasse und nicht zu einzelnen Objekten und werden zum Zeitpunkt der Kompilierung (nicht zur Laufzeit) aufgelöst. Selbst wenn wir versuchen, statische Methoden zu überschreiben, erhalten wir weder einen Komplikationsfehler noch die Auswirkungen des Überschreibens beim Ausführen von Code.

Q30. Was wird im folgenden Beispiel ausgegeben?

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();}}

Antwort : Die Ausgabe lautet:

Anzeige aus Unterklasse

Anzeige aus der Oberklasse

Q31. Ist String ein Datentyp in Java?

Antwort: String ist kein primitiver Datentyp in Java. Wenn eine Zeichenfolge in Java erstellt wird, wird tatsächlich ein Objekt der Java.Lang.String-Klasse erstellt. Nach dem Erstellen dieses Zeichenfolgenobjekts können alle integrierten Methoden der Zeichenfolgenklasse für das Zeichenfolgenobjekt verwendet werden.

Q32. Wie viele String-Objekte werden im folgenden Beispiel erstellt?

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

Antwort: Im obigen Beispiel werden zwei Objekte der Java.Lang.String-Klasse erstellt. s1 und s3 sind Verweise auf dasselbe Objekt.

Q33. Warum werden Strings in Java als unveränderlich bezeichnet?

Antwort: In Java werden Zeichenfolgenobjekte als unveränderlich bezeichnet, da ein Wert, der einer Zeichenfolge zugewiesen wurde, nicht geändert werden kann und bei Änderung ein neues Objekt erstellt wird.

Im folgenden Beispiel bezieht sich die Referenz str auf ein Zeichenfolgenobjekt mit dem Wert "Wert eins".

String str="Value One";

Wenn ihm ein neuer Wert zugewiesen wird, wird ein neues String-Objekt erstellt und die Referenz auf das neue Objekt verschoben.

str="New Value";

Q34. Was ist der Unterschied zwischen einem Array und einem Vektor?

Antwort: Ein Array gruppiert Daten desselben primitiven Typs und ist statischer Natur, während Vektoren dynamischer Natur sind und Daten verschiedener Datentypen enthalten können.

Q35. Was ist Multithreading?

Antwort: Multi-Threading ist ein Programmierkonzept, mit dem mehrere Aufgaben gleichzeitig in einem einzigen Programm ausgeführt werden können. Threads verwenden denselben Prozessstapel und werden parallel ausgeführt. Es hilft bei der Leistungsverbesserung jedes Programms.

Q36. Warum wird Runnable Interface in Java verwendet?

Antwort: Die ausführbare Schnittstelle wird in Java zum Implementieren von Multithread-Anwendungen verwendet. Die Java.Lang.Runnable-Schnittstelle wird von einer Klasse implementiert, um Multithreading zu unterstützen.

Q37. Welche zwei Möglichkeiten gibt es, Multithreading in Java zu implementieren?

Antwort: Multithread-Anwendungen können in Java mithilfe einer der folgenden beiden Methoden entwickelt werden:

1. Verwenden Sie die Java.Lang.Runnable-Schnittstelle. Klassen implementieren diese Schnittstelle, um Multithreading zu ermöglichen. In dieser Schnittstelle gibt es eine Run () -Methode, die implementiert ist.

2. Schreiben Sie eine Klasse, die die Java.Lang.Thread-Klasse erweitert.

Q38. Wenn viele Änderungen an den Daten erforderlich sind, welche sollte bevorzugt verwendet werden? String oder StringBuffer?

Antwort: Da StringBuffer dynamischer Natur sind und wir die Werte von StringBuffer-Objekten im Gegensatz zu unveränderlichem String ändern können, ist es immer eine gute Wahl, StringBuffer zu verwenden, wenn Daten zu stark geändert werden. Wenn wir in einem solchen Fall String verwenden, wird für jede Datenänderung ein neues String-Objekt erstellt, was einen zusätzlichen Aufwand bedeutet.

Q39. Was ist der Zweck der Verwendung von Break in jedem Fall von Switch-Anweisung?

Antwort: Break wird nach jedem Fall (mit Ausnahme des letzten) in einem Switch verwendet, sodass der Code nach dem gültigen Fall unterbrochen wird und auch in den folgenden Fällen nicht fließt.

Wenn break nicht nach jedem Fall verwendet wird, werden auch alle Fälle nach dem gültigen Fall ausgeführt, was zu falschen Ergebnissen führt.

Q40. Wie erfolgt die Speicherbereinigung in Java?

Antwort: Wenn in Java nicht mehr auf ein Objekt verwiesen wird, findet eine Speicherbereinigung statt und das Objekt wird automatisch zerstört. Für die automatische Speicherbereinigung ruft Java entweder die Methode System.gc () oder die Methode Runtime.gc () auf.

Q41. Wie können wir Code noch vor der Hauptmethode ausführen?

Antwort: Wenn wir Anweisungen ausführen möchten, bevor Objekte zum Ladezeitpunkt der Klasse erstellt werden, können wir einen statischen Codeblock in der Klasse verwenden. Alle Anweisungen in diesem statischen Codeblock werden zum Zeitpunkt des Ladens der Klasse einmal ausgeführt, noch bevor Objekte in der Hauptmethode erstellt werden.

Q42. Kann eine Klasse gleichzeitig eine Superklasse und eine Unterklasse sein? Ein Beispiel geben.

Antwort: Wenn eine Vererbungshierarchie verwendet wird, kann eine Klasse gleichzeitig eine Superklasse für eine andere Klasse und eine Unterklasse für eine andere Klasse sein.

Im folgenden Beispiel ist die Kontinentklasse eine Unterklasse der Weltklasse und eine Superklasse der Länderklasse.

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

Q43. Wie werden Objekte einer Klasse erstellt, wenn in der Klasse kein Konstruktor definiert ist?

Antwort: Auch wenn in einer Java-Klasse kein expliziter Konstruktor definiert ist, werden Objekte erfolgreich erstellt, da ein Standardkonstruktor implizit für die Objekterstellung verwendet wird. Dieser Konstruktor hat keine Parameter.

Q44. Wie können wir beim Multithreading sicherstellen, dass eine Ressource nicht von mehreren Threads gleichzeitig verwendet wird?

Antwort: Beim Multithreading kann der Zugriff auf die Ressourcen, die von mehreren Threads gemeinsam genutzt werden, mithilfe des Synchronisationskonzepts gesteuert werden. Mit dem synchronisierten Schlüsselwort können wir sicherstellen, dass jeweils nur ein Thread eine gemeinsam genutzte Ressource verwenden kann und andere erst dann die Kontrolle über die Ressource erhalten, wenn sie von dem anderen, der sie verwendet, frei geworden ist.

Q45. Können wir den Konstruktor einer Klasse für ein Objekt mehrmals aufrufen?

Antwort: Der Konstruktor wird automatisch aufgerufen, wenn wir ein Objekt mit einem neuen Schlüsselwort erstellen. Es wird zum Zeitpunkt der Objekterstellung nur einmal für ein Objekt aufgerufen. Daher können wir den Konstruktor für ein Objekt nach seiner Erstellung nicht erneut aufrufen.

Q46. Es gibt zwei Klassen mit den Namen classA und classB. Beide Klassen befinden sich im selben Paket. Kann ein Objekt der Klasse B auf ein privates Mitglied der Klasse A zugreifen?

Antwort: Auf private Mitglieder einer Klasse kann außerhalb des Bereichs dieser Klasse nicht zugegriffen werden, und jede andere Klasse, selbst im selben Paket, kann nicht auf sie zugreifen.

Q47. Können wir zwei Methoden in einer Klasse mit demselben Namen haben?

Antwort: Wir können zwei Methoden in einer Klasse mit demselben Namen, aber unterschiedlicher Anzahl / Art von Parametern definieren. Welche Methode aufgerufen werden soll, hängt von den übergebenen Parametern ab.

Zum Beispiel haben wir in der folgenden Klasse zwei Druckmethoden mit demselben Namen, aber unterschiedlichen Parametern. Abhängig von den Parametern wird der entsprechende aufgerufen:

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");}}

Q48. Wie können wir eine Kopie eines Java-Objekts erstellen?

Antwort: Wir können das Konzept des Klonens verwenden, um eine Kopie eines Objekts zu erstellen. Mit dem Klon erstellen wir Kopien mit dem tatsächlichen Status eines Objekts.

Clone () ist eine Methode der klonbaren Schnittstelle, und daher muss die klonbare Schnittstelle implementiert werden, um Objektkopien zu erstellen.

Q49. Was ist der Vorteil der Vererbung?

Antwort: Der Hauptvorteil der Verwendung der Vererbung ist die Wiederverwendbarkeit von Code, da durch die Vererbung Unterklassen den Code ihrer Superklasse wiederverwenden können. Polymorphismus (Erweiterbarkeit) ist ein weiterer großer Vorteil, mit dem neue Funktionen eingeführt werden können, ohne dass vorhandene abgeleitete Klassen beeinträchtigt werden.

Q50. Was ist der Standardzugriffsspezifizierer für Variablen und Methoden einer Klasse?

Antwort: Der Standardzugriffsspezifizierer für Variablen und Methoden ist paketgeschützt, dh Variablen und Klassen stehen jeder anderen Klasse zur Verfügung, jedoch im selben Paket, nicht außerhalb des Pakets.

Q51. Geben Sie ein Beispiel für die Verwendung von Zeigern in der Java-Klasse.

Antwort: In Java gibt es keine Zeiger. Daher können wir das Konzept von Zeigern in Java nicht verwenden.

Q52. Wie können wir die Vererbung für eine Klasse einschränken, damit keine Klasse von ihr geerbt werden kann?

Antwort: Wenn eine Klasse nicht um eine Klasse erweitert werden soll, können wir das Schlüsselwort Final mit dem Klassennamen verwenden.

Im folgenden Beispiel ist die Steinklasse Final und kann nicht erweitert werden

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

Q53. Was ist der Zugriffsbereich des Protected Access-Bezeichners?

Antwort: Wenn eine Methode oder eine Variable mit dem Protected Access Specifier deklariert wird, kann auf sie in derselben Klasse, jeder anderen Klasse desselben Pakets sowie einer Unterklasse zugegriffen werden.

Modifikator

Klasse

Paket

Unterklasse

Welt

Öffentlichkeit

Y.

Y.

Y.

Y.

geschützt

Y.

Y.

Y.

N.

kein Modifikator

Y.

Y.

N.

N.

Privat

Y.

N.

N.

N.

Q54. Was ist der Unterschied zwischen Stapel und Warteschlange?

Antwort: Stapel und Warteschlange werden beide als Platzhalter für eine Datenerfassung verwendet. Der Hauptunterschied zwischen einem Stapel und einer Warteschlange besteht darin, dass der Stapel auf dem LIFO-Prinzip (Last In First Out) basiert, während eine Warteschlange auf dem FIFO-Prinzip (First In First Out) basiert.

Q55. Wie können wir in Java die Serialisierung von Variablen verbieten?

Antwort: Wenn bestimmte Variablen einer Klasse nicht serialisiert werden sollen, können wir das Schlüsselwort transient verwenden, während wir sie deklarieren. Beispielsweise ist die folgende Variable trans_var eine transiente Variable und kann nicht serialisiert werden:

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

Q56. Wie können wir primitive Datentypen als Objekte verwenden?

Antwort: Primitive Datentypen wie int können mithilfe ihrer jeweiligen Wrapper-Klassen als Objekte behandelt werden. Beispielsweise ist Integer eine Wrapper-Klasse für den primitiven Datentyp int. Wir können wie jedes andere Objekt verschiedene Methoden auf eine Wrapper-Klasse anwenden.

Q57. Welche Arten von Ausnahmen werden beim Kompilieren abgefangen?

Antwort: Überprüfte Ausnahmen können zum Zeitpunkt der Programmkompilierung abgefangen werden. Überprüfte Ausnahmen müssen mithilfe des try catch-Blocks im Code behandelt werden, um den Code erfolgreich zu kompilieren.

Q58. Beschreiben Sie verschiedene Zustände eines Threads.

Antwort: Ein Thread in Java kann sich in einem der folgenden Zustände befinden:

  • Bereit: Wenn ein Thread erstellt wird, befindet er sich im Status Bereit.
  • Wird ausgeführt: Ein aktuell ausgeführter Thread befindet sich im laufenden Zustand.
  • Warten: Ein Thread, der darauf wartet, dass ein anderer Thread bestimmte Ressourcen freigibt, befindet sich im Wartezustand.
  • Tot: Ein Thread, der nach der Ausführung tot ist, befindet sich im toten Zustand.

Q59. Können wir einen Standardkonstruktor einer Klasse verwenden, auch wenn ein expliziter Konstruktor definiert ist?

Antwort: Java bietet standardmäßig einen Konstruktor ohne Argumente, wenn in einer Java-Klasse kein expliziter Konstruktor definiert ist. Wenn jedoch ein expliziter Konstruktor definiert wurde, kann der Standardkonstruktor nicht aufgerufen werden, und der Entwickler kann nur die Konstruktoren verwenden, die in der Klasse definiert sind.

Q60. Können wir eine Methode überschreiben, indem wir denselben Methodennamen und dieselben Argumente verwenden, aber unterschiedliche Rückgabetypen?

Antwort: Die Grundbedingung für das Überschreiben von Methoden ist, dass Methodenname, Argumente sowie der Rückgabetyp genau mit denen der überschriebenen Methode übereinstimmen müssen. Daher überschreibt die Verwendung eines anderen Rückgabetyps eine Methode nicht.

F61.Was wird der folgende Code ausgeben?

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

Antwort: In diesem Fall wird der Postfix ++ - Operator verwendet, der zuerst den Wert zurückgibt und dann inkrementiert. Daher wird die Ausgabe 4 sein.

Q61. Eine Person sagt, dass sie eine Java-Klasse erfolgreich kompiliert hat, ohne eine Hauptmethode darin zu haben? Ist es möglich?

Antwort: Die Hauptmethode ist ein Einstiegspunkt der Java-Klasse und wird jedoch für die Ausführung des Programms benötigt. Eine Klasse wird erfolgreich kompiliert, auch wenn sie keine Hauptmethode hat. Es kann jedoch nicht ausgeführt werden.

Q62. Können wir eine nicht statische Methode innerhalb einer statischen Methode aufrufen?

Antwort: Nicht statische Methoden gehören Objekten einer Klasse und haben einen Gültigkeitsbereich auf Objektebene. Um die nicht statischen Methoden aus einem statischen Block (wie aus einer statischen Hauptmethode) aufzurufen, muss ein Objekt der Klasse erstellt werden zuerst. Anschließend können diese Methoden mithilfe der Objektreferenz aufgerufen werden.

Q63. Welche zwei Umgebungsvariablen müssen festgelegt werden, um Java-Programme ausführen zu können?

Antwort: Java-Programme können auf einer Maschine nur einmal ausgeführt werden, nachdem zwei Umgebungsvariablen richtig eingestellt wurden:

  1. PATH-Variable
  2. CLASSPATH-Variable

Q64. Können Variablen in Java ohne Initialisierung verwendet werden?

Antwort: Wenn in Java eine Variable in einem Code ohne vorherige Initialisierung durch einen gültigen Wert verwendet wird, wird das Programm nicht kompiliert und gibt einen Fehler aus, da Variablen in Java kein Standardwert zugewiesen wird.

Q65. Kann eine Klasse in Java von mehr als einer Klasse geerbt werden?

Antwort: In Java kann eine Klasse nur von einer Klasse und nicht von mehreren Klassen abgeleitet werden. Mehrfachvererbungen werden von Java nicht unterstützt.

Q66. Kann ein Konstruktor in Java einen anderen Namen als ein Klassenname haben?

Antwort: Der Konstruktor in Java muss denselben Namen wie der Klassenname haben. Wenn der Name unterschiedlich ist, fungiert er nicht als Konstruktor, und der Compiler betrachtet ihn als normale Methode.

Q67. Was wird die Ausgabe von Round (3.7) und Ceil (3.7) sein?

Antwort: Runde (3.7) gibt 4 zurück und Decke (3.7) gibt 4 zurück.

F68: Können wir in Java goto verwenden, um zu einer bestimmten Zeile zu gelangen?

Antwort: In Java gibt es kein goto-Schlüsselwort und Java unterstützt diese Funktion zum Wechseln zu einer bestimmten beschrifteten Zeile nicht.

Q69. Kann ein toter Thread erneut gestartet werden?

Antwort: In Java kann ein Thread, der sich im toten Zustand befindet, nicht erneut gestartet werden. Es gibt keine Möglichkeit, einen toten Thread neu zu starten.

Q70. Ist die folgende Klassendeklaration korrekt?

Ans:

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

Antwort: Die obige Klassendeklaration ist falsch, da eine abstrakte Klasse nicht als endgültig deklariert werden kann.

Q71. Ist JDK auf jedem Computer erforderlich, um ein Java-Programm auszuführen?

Antwort: JDK ist ein Entwicklungskit von Java und wird nur für die Entwicklung benötigt. Um ein Java-Programm auf einem Computer auszuführen, ist JDK nicht erforderlich. Es ist nur JRE erforderlich.

Q72. Was ist der Unterschied zwischen dem Vergleich mit der Methode equals und dem Operator ==?

Antwort: In Java wird die Methode equals () verwendet, um den Inhalt von zwei Zeichenfolgenobjekten zu vergleichen, und gibt true zurück, wenn beide denselben Wert haben, während der Operator == die Referenzen von zwei Zeichenfolgenobjekten vergleicht.

Im folgenden Beispiel gibt equals () true zurück, da die beiden Zeichenfolgenobjekte dieselben Werte haben. Der Operator == gibt jedoch false zurück, da beide Zeichenfolgenobjekte auf unterschiedliche Objekte verweisen:

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");}}}

Q73. Ist es möglich, eine Methode in einer Java-Klasse zu definieren, diese jedoch im Code einer anderen Sprache wie C zu implementieren?

Antwort: Ja, wir können dies mit nativen Methoden tun. Bei nativer methodenbasierter Entwicklung definieren wir öffentliche statische Methoden in unserer Java-Klasse ohne deren Implementierung. Anschließend erfolgt die Implementierung in einer anderen Sprache wie C separat.

Q74. Wie werden Destruktoren in Java definiert?

Antwort: In Java sind keine Destruktoren in der Klasse definiert, da dies nicht erforderlich ist. Java verfügt über einen eigenen Garbage Collection-Mechanismus, der die Aufgabe automatisch erledigt, indem die Objekte zerstört werden, wenn nicht mehr darauf verwiesen wird.

Q75. Kann eine Variable gleichzeitig lokal und statisch sein?

Antwort: Nein, eine Variable kann nicht gleichzeitig statisch und lokal sein. Das Definieren einer lokalen Variablen als statisch führt zu einem Kompilierungsfehler.

Q76. Können wir statische Methoden in einer Schnittstelle haben?

Antwort: Statische Methoden können in keiner Klasse überschrieben werden, während Methoden in einer Schnittstelle standardmäßig abstrakt sind und in den Klassen implementiert werden sollen, die die Schnittstelle implementieren. Es macht also keinen Sinn, statische Methoden in einer Schnittstelle in Java zu haben.

Q77. Können wir in einer Klasse, die eine Schnittstelle implementiert, den Wert einer in der Schnittstelle definierten Variablen ändern?

Antwort: Nein, wir können den Wert einer Variablen einer Schnittstelle in der implementierenden Klasse nicht ändern, da alle in der Schnittstelle definierten Variablen standardmäßig öffentlich, statisch und endgültig sind. Die endgültigen und endgültigen Variablen sind wie Konstanten, die später nicht mehr geändert werden können.

Q78. Ist es richtig zu sagen, dass ein Java-Programm aufgrund der Garbage Collection-Funktion in Java niemals den Arbeitsspeicher verliert?

Antwort: Obwohl die automatische Speicherbereinigung von Java bereitgestellt wird, wird nicht sichergestellt, dass ein Java-Programm nicht über genügend Arbeitsspeicher verfügt, da die Erstellung von Java-Objekten möglicherweise schneller erfolgt als die Speicherbereinigung Füllen aller verfügbaren Speicherressourcen.

Die Speicherbereinigung hilft also dabei, die Wahrscheinlichkeit zu verringern, dass ein Programm nicht mehr über genügend Speicher verfügt, stellt dies jedoch nicht sicher.

Q79. Können wir einen anderen Rückgabetyp als void für die Hauptmethode haben?

Antwort: Nein, die Hauptmethode der Java-Klasse kann nur den Rückgabetyp void haben, damit das Programm erfolgreich ausgeführt wird.

Wenn Sie jedoch nach Abschluss der Hauptmethode unbedingt einen Wert zurückgeben müssen, können Sie System.exit (int status) verwenden.

Q80. Ich möchte ein Objekt wieder erreichen und verwenden, sobald es durch Müll gesammelt wurde. Wie ist es möglich?

Antwort: Sobald ein Objekt vom Garbage Collector zerstört wurde, existiert es nicht mehr auf dem Heap und es kann nicht mehr darauf zugegriffen werden. Es gibt keine Möglichkeit, erneut darauf zu verweisen.

Q81. Welche Methode ist in der Java-Thread-Programmierung ein Muss für alle Threads?

Antwort: Run () ist eine Methode der Runnable-Schnittstelle, die von allen Threads implementiert werden muss.

Q82. Ich möchte Datenbankverbindungen in meinem Programm steuern und möchte, dass jeweils nur ein Thread eine Datenbankverbindung herstellen kann. Wie kann ich diese Logik implementieren?

Antwort: Dies kann mithilfe des Synchronisationskonzepts implementiert werden. Datenbankbezogener Code kann in eine Methode eingefügt werden, die das Schlüsselwort synchronisiert, sodass jeweils nur ein Thread darauf zugreifen kann.

Q83. Wie kann eine Ausnahme von einem Programmierer manuell ausgelöst werden?

Antwort: Um eine Ausnahme in einem Codeblock manuell auszulösen, wird das Schlüsselwort throw verwendet. Dann wird diese Ausnahme abgefangen und im catch-Block behandelt.

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

Q84. Ich möchte, dass meine Klasse so entwickelt wird, dass keine andere Klasse (auch keine abgeleitete Klasse) ihre Objekte erstellen kann. Wie kann ich das machen?

Antwort: Wenn wir den Konstruktor einer Klasse als privat deklarieren, kann keine andere Klasse darauf zugreifen, und daher kann keine andere Klasse ihn instanziieren, und die Bildung ihres Objekts ist nur auf sich selbst beschränkt.

Q85. Wie werden Objekte in Java gespeichert?

Antwort: In Java erhält jedes Objekt beim Erstellen einen Speicherplatz von einem Heap. Wenn ein Objekt von einem Garbage Collector zerstört wird, wird der ihm vom Heap zugewiesene Speicherplatz dem Heap neu zugewiesen und steht für neue Objekte zur Verfügung.

Q86. Wie können wir die tatsächliche Größe eines Objekts auf dem Heap ermitteln?

Antwort: In Java gibt es keine Möglichkeit, die genaue Größe eines Objekts auf dem Heap herauszufinden.

Q87. Welcher der folgenden Klassen wird mehr Speicher zugewiesen?

Klasse A: Drei Methoden, vier Variablen, kein Objekt

Klasse B: Fünf Methoden, drei Variablen, kein Objekt

Antwort: Der Speicher wird vor dem Erstellen von Objekten nicht zugewiesen. Da für beide Klassen keine Objekte erstellt wurden, wird für keine Klasse Speicher auf dem Heap zugewiesen.

Q88. Was passiert, wenn eine Ausnahme in einem Programm nicht behandelt wird?

Antwort: Wenn eine Ausnahme in einem Programm nicht mit try catch-Blöcken behandelt wird, wird das Programm abgebrochen und nach der Anweisung, die das Auslösen von Ausnahmen verursacht hat, wird keine Anweisung ausgeführt.

Q89. Ich habe mehrere Konstruktoren in einer Klasse definiert. Ist es möglich, einen Konstruktor aus dem Körper eines anderen Konstruktors aufzurufen?

Antwort: Wenn eine Klasse mehrere Konstruktoren hat, können Sie mit this () einen Konstruktor aus dem Hauptteil eines anderen aufrufen .

Q90. Was ist mit anonymer Klasse gemeint?

Antwort: Eine anonyme Klasse ist eine Klasse, die ohne Namen in einer einzelnen Codezeile mit einem neuen Schlüsselwort definiert wurde.

Zum Beispiel haben wir im folgenden Code eine anonyme Klasse in einer Codezeile definiert:

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;}}

Q91. Gibt es eine Möglichkeit, die Größe eines Arrays nach seiner Deklaration zu erhöhen?

Antwort: Arrays sind statisch und sobald wir ihre Größe angegeben haben, können wir sie nicht mehr ändern. Wenn wir solche Sammlungen verwenden möchten, bei denen möglicherweise eine Änderung der Größe (Anzahl der Elemente) erforderlich ist, sollten wir den Vektor dem Array vorziehen.

Q92. Wenn eine Anwendung mehrere Klassen enthält, ist es in Ordnung, eine Hauptmethode in mehr als einer Klasse zu haben?

Antwort: Wenn es in einer Java-Anwendung eine Hauptmethode in mehr als einer Klasse gibt, verursacht dies keine Probleme, da der Einstiegspunkt für eine Anwendung eine bestimmte Klasse ist und der Code nur von der Hauptmethode dieser bestimmten Klasse ausgeht.

Q93. Ich möchte Daten von Objekten für die spätere Verwendung beibehalten. Was ist der beste Ansatz dafür?

Antwort: Der beste Weg, um Daten für die zukünftige Verwendung beizubehalten, ist das Konzept der Serialisierung.

Q94. Was ist eine lokale Klasse in Java?

Antwort: Wenn wir in Java eine neue Klasse innerhalb eines bestimmten Blocks definieren, wird diese als lokale Klasse bezeichnet. Eine solche Klasse hat einen lokalen Gültigkeitsbereich und kann nicht außerhalb des Blocks verwendet werden, in dem sie definiert ist.

Q95. String und StringBuffer repräsentieren beide String-Objekte. Können wir String und StringBuffer in Java vergleichen?

Antwort: Obwohl sowohl String als auch StringBuffer String-Objekte darstellen, können wir sie nicht miteinander vergleichen. Wenn wir versuchen, sie zu vergleichen, wird eine Fehlermeldung angezeigt.

Q96. Welche API wird von Java für Operationen an einer Reihe von Objekten bereitgestellt?

Antwort: Java bietet eine Sammlungs-API, die viele nützliche Methoden bietet, die auf eine Reihe von Objekten angewendet werden können. Einige der wichtigen Klassen, die von der Collection API bereitgestellt werden, umfassen ArrayList, HashMap, TreeSet und TreeMap.

Q97. Können wir mit Typumwandlung einen anderen Typ in einen booleschen Typ umwandeln?

Antwort: Nein, wir können weder einen anderen primitiven Typ in einen booleschen Datentyp noch einen booleschen Datentyp in einen anderen primitiven Datentyp umwandeln.

Q98. Können wir verschiedene Rückgabetypen für Methoden verwenden, wenn diese überschrieben werden?

Antwort: Die Grundvoraussetzung für das Überschreiben von Methoden in Java ist, dass die überschriebene Methode denselben Namen und dieselben Parameter hat. Eine Methode kann jedoch mit einem anderen Rückgabetyp überschrieben werden, solange der neue Rückgabetyp das Original erweitert.

Beispielsweise gibt die Methode einen Referenztyp zurück.

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

Q99. Was ist die Basisklasse aller Ausnahmeklassen?

Antwort : In Java ist Java.lang.Throwable die Superklasse aller Ausnahmeklassen, und alle Ausnahmeklassen werden von dieser Basisklasse abgeleitet.

Q100. Wie ist die Reihenfolge der Aufrufe von Konstruktoren bei der Vererbung?

Antwort: Im Falle einer Vererbung wird beim Erstellen eines neuen Objekts einer abgeleiteten Klasse zuerst der Konstruktor der Superklasse und dann der Konstruktor der abgeleiteten Klasse aufgerufen.

Bereite dich auf dein Vorstellungsgespräch vor !!! Gehen Sie das Java-Tutorial durch, um besser vorbereitet zu sein.

Dieses detaillierte PDF mit Fragen zu Java-Interviews hilft Ihnen dabei, die Zweifel an Fragen zu Java-Interviews auszuräumen und das Interview zu knacken.