Klassische Java Basic -Interviewfragen, Willkommen zum Sammeln und Teilen.
Frage: Was passiert, wenn die Hauptmethode privat erklärt wird?
ANTWORT: Es kann normal kompilieren, aber es wird "die Hauptmethode ist nicht öffentlich" beim Laufen auffordern.
Frage: Was ist der Unterschied zwischen dem Übergeben von Referenz und dem Bestehen von Wert in Java?
Antwort: Das Übergeben einer Referenz bedeutet, eine Adresse und nicht den Wert selbst zu übergeben, und ein Wert ist eine Kopie des Wertes.
Frage: Wenn Sie die Equals -Methode eines Objekts neu schreiben möchten, was sollten Sie noch in Betracht ziehen?
Antwort: Hashcode.
Frage: Wie wird Javas "einmal schreiben, überall laufen" implementiert?
Antwort: Java-Programme werden in eine Klassendatei zusammengestellt, die aus Bytecodes besteht, die auf jeder Plattform ausgeführt werden können, sodass Java plattformunabhängig ist.
Frage: Erläutern Sie die Rolle jedes Schlüsselworts in der öffentlichen statischen Void -Hauptaussage (String args []) Aussage
Antwort: Die Öffentlichkeit: Die Hauptmethode ist die erste Methode, die aufgerufen wird, wenn ein Java -Programm ausgeführt wird. Daher muss es für die Java -Umgebung sichtbar sein. Die Sichtbarkeit ist also auf pulic eingestellt.
Statisch: Die Java -Plattform erstellt beim Aufrufen dieser Methode keine Instanz dieser Klasse. Daher muss diese Methode als statisch deklariert werden.
void: Hauptmethode hat keinen Rückgabewert.
String ist der in der Befehlszeile übergebene Parametertyp, und Args bezieht sich auf ein Array von Zeichenfolgen, die in der Befehlszeile übergeben wurden.
Frage: == Differenz von Gleichen
Antwort: == Vergleichen Sie, ob zwei Objekte das gleiche Objekt im Speicher sind, was bedeutet, dass die Speicherorte im Speicher gleich sind. Die von den beiden String -Objekten gespeicherten Werte sind gleich, können jedoch an verschiedenen Stellen im Speicher gespeichert werden.
== Vergleich ist die Referenz, während die Equals -Methode den Inhalt vergleicht. Öffentlicher Boolescher Equals (Object OBJ) Diese Methode wird von einem Objektobjekt bereitgestellt und kann durch Unterklassen neu geschrieben werden. Die Standardimplementierung kehrt nur dann zurück, wenn das Objekt mit sich selbst verglichen wird, und zu diesem Zeitpunkt entspricht es ==. String, Bitset, Datum und Datei überschreiben alle die Equals -Methode. Für zwei String -Objekte bedeutet gleiche Werte, dass sie dieselbe Zeichensequenz enthalten. Für eine Wrapper -Klasse mit einem Basistyp bedeutet gleiche Werte, dass die entsprechenden Werte des Basistyps gleich sind.
public class Equalstest {public static void main (String [] args) {String s1 = "abc"; String S2 = S1; String S5 = "ABC"; String s3 = new String ("ABC"); String s4 = new String ("ABC"); System.out.println ("== Vergleich:" + (S1 == S5)); System.out.println ("== Vergleich:" + (S1 == S2)); System.out.println ("mit der Equals -Methode verwenden:" + s1.equals (S2)); System.out.println ("== Vergleich:" + S3 == S4); System.out.println ("mit der Equals -Methode mithilfe von Methode:" + S3.Equals (S4)); }}Ergebnis:
== Vergleich: wahr
== Vergleich: wahr
Verwenden der Equals -Methode: True
FALSCH
Verwenden der Equals -Methode: True
Frage: Was passiert, wenn der statische Modifikator der Hauptmethode entfernt wird?
Antwort: Das Programm kann normal kompilieren. Während der Laufzeit wird eine Ausnahme von NoSuchmethoderror ausgelöst.
Frage: Warum wird der Oracle Type4 -Treiber als dünner Treiber bezeichnet?
Antwort: Oracle bietet einen Typ 4 JDBC -Treiber, der als dünner Treiber bezeichnet wird. Dieser Treiber enthält eine Implementierung von TCP/IP Net8 in Oracle, das vollständig in Java implementiert ist. Daher ist es plattformunabhängig und kann zur Laufzeit vom Browser heruntergeladen werden und stützt sich nicht auf die Oracle-Implementierung eines Kunden. Die Client -Verbindungszeichenfolge verwendet den TCP/IP -Adressport, nicht den TNSnamen des Datenbanknamens.
FRAGE: Lassen Sie mich die Abschlussmethode vorstellen
Antwort: Finale: Konstante Deklaration. Endlich: Ausnahmen handhaben. Finalize: Hilft bei der Müllsammlung.
Die in der Schnittstelle deklarierten Variablen sind standardmäßig endgültig. Die endgültige Klasse kann nicht vererbt werden, was bedeutet, dass es keine Unterklassen gibt. Dies erfolgt aus grundlegenden Arten von Sicherheitsgründen wie String und Ganzzahl. Dies ermöglicht dem Compiler auch einige Optimierungen und erleichtert die Gewährleistung der Sicherheit der Threads. Die endgültige Methode kann nicht umgeschrieben werden. Der Wert der endgültigen Variablen kann nicht geändert werden. Die Methode Finalize () wird aufgerufen, bevor ein Objekt zerstört und recycelt wird. Schließlich wird es normalerweise für die Ausnahmebehandlung verwendet, unabhängig davon, ob eine Ausnahme ausgelöst wird oder nicht, wird es ausgeführt. Zum Beispiel wird das Schließen der Verbindung normalerweise in einem endgültigen Block erfolgen.
Frage: Was ist die Java -API?
Antwort: Java API ist eine Sammlung einer großen Anzahl von Softwarekomponenten, die viele nützliche Funktionen bieten, z. B. GUI -Komponenten.
Frage: Wie lautet die Gregoriancalendar -Klasse?
Antwort: Gregoriancalendar unterstützt traditionelle westliche Kalender.
Frage: Was ist die RessourcenBundle -Klasse?
Antwort: Resourcebundle wird verwendet, um Ressourcen in einem bestimmten Gebietsschema zu speichern. Anwendungen können diese Ressourcen gemäß dem Laufzeit -Gebietsschema laden und so die Anzeige verschiedener Sprachen bereitstellen.
Frage: Warum gibt es in Java keine globalen Variablen?
Antwort: Globale Variablen sind global sichtbar, und Java unterstützt weltweit sichtbare Variablen nicht, da: globale Variablen das Prinzip der Referenztransparenz zerstören. Globale Variablen verursachen Namespace -Konflikte.
Frage: Wie konvertieren Sie den String -Typ in den Zahlen -Typ?
Antwort: Die ValueOF -Methode der Ganzzahlklasse kann eine Zeichenfolge in eine Zahl umwandeln. Hier ist ein Codebeispiel:
String numstring = "1000";
int id = Integer.Valueof (numstring) .IntValue ();
Frage: Was ist die SimpleTimezone -Klasse?
Antwort: SimplyTimeZone bietet Gregorian Date Support.
Frage: Was ist der Unterschied zwischen einer Weile und einer DO -Schleife?
Antwort: Die While -Struktur bestimmt, ob die nächste Iteration zu Beginn der Schleife fortgesetzt werden sollte. Die DO/während der Struktur bestimmt, ob die nächste Iteration am Ende der Schleife fortgesetzt wird. Die DO -Struktur führt den Schleifenkörper mindestens einmal aus.
Frage: Wie lautet die Gebietsschemasklasse?
Antwort: Die Gebietsschemasklasse wird verwendet, um die Ausgabe des Programms dynamisch gemäß der Gebietsschemasumgebung anzupassen.
Frage: Was sind die Prinzipien der objektorientierten Programmierung?
Antwort: Es gibt drei Hauptpunkte: Polymorphismus, Vererbung und Verkapselung.
Frage: Einführung in die Prinzipien der Vererbung
Antwort: Erbschaft ermöglicht es einem Objekt, die Eigenschaften eines anderen Objekts zu erhalten. Durch die Verwendung der Vererbung können die getesteten Funktionen wiederverwendet und sofort geändert werden, und alle Erbschaftsstellen werden gleichzeitig wirksam.
Frage: Was ist implizite Typumwandlung?
ANTWORT: Implizite Typkonvertierung zugewiesen einfach einen Typ einem anderen Typ, ohne dem Compiler explizit zu sagen, dass die Konvertierung aufgetreten ist. Nicht alle Typen unterstützen implizite Typkonvertierung.
Codebeispiel:
int i = 1000;
lang j = i; // implizites Casting
FRAGE: Ist Sizeof ein Schlüsselwort in Java?
Antwort: Nein.
Frage: Was ist die native Methode?
Antwort: Die native Methode ist eine Nicht-Java-Code-Implementierungsmethode.
Frage: In System.out.println (), was sind System, Out und Println?
Antwort: System ist eine vordefinierte endgültige Klasse, die vom System bereitgestellt wird. Out ist ein Printstream -Objekt, und Println ist eine überlastete Methode im Out -Objekt.
Frage: Was ist Kapselung, Vererbung und Polymorphismus?
Antwort: Einfach ausgedrückt bezieht sich Polymorphismus auf mehrere Implementierungen eines Namens. Durch Polymorphismus kann ein Unternehmen unterschiedliche Operationen auf gemeinsame Weise implementieren. Der spezifische Betrieb wird durch die tatsächliche Implementierung bestimmt.
Es gibt drei Möglichkeiten, um Polymorphismus in Java zu manifestieren: Die Überlastung von Methoden wird durch Vererbung und Methode -Umschreiben über die Java -Schnittstelle implementiert.
Frage: Was ist eine explizite Konvertierung vom Typ?
ANTWORT: Der explizite Typumwandlungsumwandlung sagt dem Compiler explizit an, Objekte zu konvertieren.
Codebeispiel:
lang i = 700,20;
int j = (int) i; // explizites Casting
Frage: Was ist eine java -virtuelle Maschine?
Antwort: Java Virtual Machines sind Softwaresysteme, die auf verschiedene Hardwareplattformen portiert werden können.
Frage: Was ist Typ -Downconversion?
ANTWORT: Down Conversion bezieht sich auf die Konvertierung von einem gemeinsamen Typ zu einem bestimmten Typ, der nach unten in der Vererbungsstruktur durchgeführt wird.
Frage: Was ist der Zugriffsmodifikator für Java?
Antwort: Der Zugriffsmodifikator ist ein Schlüsselwort, das den Zugriffstyp eines Klassenmitglieds angibt. Verwenden Sie diese Schlüsselwörter, um den Zugriff auf Methoden oder Variablen für Programme zu definieren. Sie enthalten:
Öffentlich: Alle Klassen können auf geschützt zugreifen: Alle Unterklassen können privat zugreifen
Frage: Was sind die Elternklassen aller Klassen?
Antwort: Objekt.
Frage: Was sind die Grundtypen von Java?
Antwort: Byte, Char, Short, Int, Long, Float, Double, Boolean.
Frage: Was sind die Eigenschaften statischer Typen?
Antwort: Statische Variablen sind an die Klasse gebunden, nicht an Instanzobjekte der Klasse. Jedes Instanzobjekt teilt die gleiche statische Variable. Das heißt, eine Klasse hat nur eine statische Variable, egal wie viele Objekte sie hat. Klassenvariablen oder statische Variablen werden durch das Schlüsselwort statisch deklariert. Klassenvariablen werden normalerweise als Konstanten verwendet. Auf statische Variablen werden normalerweise mit Klassennamen zugegriffen. Wenn das Programm ausgeführt wird, wird diese Variable erstellt, bis das Programm fertig ist und nicht zerstört wird. Der Umfang der Klassenvariablen ist der gleiche wie der von Instanzvariablen. Sein Anfangswert ist der gleiche wie Mitgliedsvariablen. Wenn die Variable nicht initialisiert wird, gibt es einen Standardwert gemäß dem Datentyp. In ähnlicher Weise sind statische Methoden Methoden, die zu Klassen gehören, nicht zu Klassenobjekten. Ihre Anrufe reagieren nicht auf Klassenobjekte und müssen keine Klasseninstanzen erstellen. Statische Methoden selbst sind endgültig, da das Umschreiben nur in Klasseninstanzen stattfinden wird. Statische Methoden sind an die Klasse gebunden, nicht an Objekte. Die statischen Methoden der übergeordneten Klasse werden durch die statischen Methoden der untergeordneten Klasse blockiert, solange die ursprüngliche Methode nicht als endgültig erklärt wird. Nichtstatische Methoden können statische Methoden nicht überschreiben, dh Sie können eine statische Methode nicht in eine Instanzmethode in einer Unterklasse ändern.
Nichtstatische Variablen haben eine separate Kopie des Wertes für jede Objektinstanz.
Frage: Was ist der Unterschied zwischen & Operator und dem && Operator?
Antwort: Wenn ein & Ausdruck bewertet wird, werden beide Operanden bewertet, und && ist eher eine Abkürzung für einen Bediener. Wenn ein && Ausdruck bewertet wird, wird der erste Operand zuerst berechnet, und wenn er true zurückgibt, wird der zweite Operand berechnet. Wenn der erste Operand als falsch angesehen wird, wird der zweite Operand nicht bewertet.
Frage: Wie geht Java mit dem Überlauf und dem Unterstrom der Ganzzahlen um?
Antwort: Java speichert die entsprechenden Bytes niedriger Ordnung im Berechnungsergebnis in den entsprechenden Wert gemäß der Größe des Typs.
Frage: Was passiert, wenn die öffentliche statische Leere als statische öffentliche Leere geschrieben wird?
Antwort: Das Programm wird zusammengestellt und normal ausgeführt.
Frage: Was ist der Unterschied zwischen Deklarieren von Variablen und Definieren von Variablen?
Antwort: Deklare Variablen Wir geben nur den Typ und den Namen der Variablen an und initialisieren sie nicht. Die Definition umfasst zwei Phasen: Deklarations- und Initialisierungszeichenfolge S; Nur variable Deklaration, String S = New String ("Bob"); oder String S = "Bob"; ist variable Definition.
Frage: Welcher Parameterübergabe -Typ unterstützt Java?
Antwort: Java -Parameter werden alle übergeben. Für ein Objekt ist der übergebene Wert eine Referenz auf das Objekt, dh die Kopie der ursprünglichen Referenz und die Parameterreferenz verweisen beide auf dasselbe Objekt.
Frage: Was sind die Prinzipien der Objektverkapselung?
Antwort: Die Kapselung soll die Daten und den Code binden, der die Daten an eine separate Einheit betreibt. Dies stellt die Sicherheit der Daten sicher und verhindert die falsche Verwendung von externem Code. Objekte ermöglichen es, Programmen und Daten verkapselt zu werden, um potenzielle Interferenzen zu verringern. Ein weiteres Verständnis der Kapselung besteht darin, als Schutzschicht für Daten und Code zu wirken, um den Zufallszugriff auf Code außerhalb der Schutzschicht zu verhindern.
Frage: Wie verstehen Sie Variablen?
Antwort: Eine Variable ist ein benannter Speicherbereich für den Zugriff nach dem Programm. Variablen werden zum Speichern von Daten verwendet, und während das Programm ausgeführt wird, können sich auch die gespeicherten Daten ändern.
Frage: Was ist eine numerische Verbesserung?
Antwort: Die numerische Verbesserung bezieht sich auf die Konvertierung von Daten von einem kleineren Datentyp in einen größeren Datentyp für Ganzzahl- oder Schwimmpunktoperationen. Während des Prozesses des numerischen Anstiegs werden das Byte-, Zeichen -Short -Werte in den Int -Typ umgewandelt. Bei Bedarf kann auch der INT -Typ zu lang befördert werden. Lang und float kann in doppelte Typen umgewandelt werden.
Frage: Was ist die Typumwandlung von Java?
Antwort: Das Konvertieren von einem Datentyp zu einem anderen wird als Typkonvertierung bezeichnet. Java verfügt über zwei Arten von Konvertierungsmethoden, eine explizite Typumwandlung und der andere ist implizit.
Frage: Was ist der erste Parameter des String -Arrays in den Parametern der Hauptmethode?
Antwort: Das Array ist ohne Elemente leer. Im Gegensatz zu C oder C ++ ist das erste Element standardmäßig der Programmname. Wenn die Befehlszeile keine Parameter enthält, ist das String -Array in der Hauptmethode leer, jedoch nicht null.
Frage: Wie kann ich feststellen, ob ein Array null oder leer ist?
Antwort: Der Ausgangswert von Array.Length. Wenn es 0 ist, ist das Array leer. Wenn es sich um Null handelt, wird eine Null -Zeiger -Ausnahme ausgeworfen.
Frage: Können mehrere Klassen gleichzeitig besitzen und Hauptmethoden im Programm haben?
Antwort: Ja. Wenn das Programm ausgeführt wird, geben wir den laufenden Klassennamen an. Das JVM sucht nur nach Hauptmethoden in der von Ihnen angegebenen Klasse. Daher gibt es keinen Namenskonflikt zwischen mehreren Klassen mit Hauptmethoden.
Frage: Wann laden statische Variablen? Kompilieren oder Laufzeit? Was ist der Zeitpunkt des Ladens des statischen Codeblocks?
Antwort: Wenn der Klassenlader die Klasse in die JVM lädt, werden statische Variablen erstellt, was nichts damit zu tun hat, ob das Objekt erstellt wird. Der Speicherraum wird zugewiesen, wenn statische Variablen geladen werden. Der Code des statischen Codeblocks wird nur einmal ausgeführt, wenn die Klasse zum ersten Mal initialisiert wird. Eine Klasse kann mehrere statische Codeblöcke haben, es ist kein Mitglied der Klasse, hat keinen Rückgabewert und kann nicht direkt aufgerufen werden. Statische Codeblöcke können diese oder Super nicht enthalten, sie werden normalerweise mit statischen Variablen initialisiert.
Frage: Kann eine Klasse mehrere Hauptmethoden haben?
Antwort: Ja, aber nur eine Hauptmethode hat die folgende Unterschrift:
public static void main (String [] args) {}
Andernfalls wird das Programm nicht zusammengestellt. Der Compiler warnt Sie, dass die Hauptmethode bereits existiert.
Frage: Lassen Sie mich kurz vorstellen, wie JVM funktioniert?
Antwort: JVM ist ein abstrakter Computer. Genau wie ein echter Computer werden sie zuerst die .java -Datei in eine .Class -Datei (die .Class -Datei ist die Bytecode -Datei) zusammengestellt und verwenden dann den Interpreter, um den Bytecode zu laden.
Frage: Was ist, wenn die Werte von zwei Variablen ausgetauscht werden?
Antwort: Fügen Sie zuerst zwei Werte hinzu und weisen Sie der ersten Variablen Werte zu, subtrahieren Sie dann die zweite Variable vom Ergebnis und weisen Sie der zweiten Variablen Werte zu. Subtrahieren Sie dann die zweite Variable mit der ersten Variablen und weisen Sie gleichzeitig den Wert der ersten Variablen zu. Der Code ist wie folgt:
int a = 5, b = 10; a = a+b; B = AB; a = ab;
Verwenden Sie XOR, um zu wechseln. Die erste Methode kann auch zu Überlauf führen. Die Methode von XOR ist wie folgt: int a = 5, b = 10; a = a+b; B = AB; a = ab;
int a = 5; int b = 10;
a = a ^ b;
B = a ^ b;
a = a ^ b;
Frage: Was ist Datenkapselung?
ANTWORT: Eine Möglichkeit, Daten zu verkörpern, besteht darin, SET und Methoden in der Klasse zu erstellen und zu erhalten, um auf die Datenvariablen des Objekts zuzugreifen. Im Allgemeinen sind Variablen privat, während die Methoden Get and Set öffentlich sind. Die Kapselung kann auch verwendet werden, um Daten beim Speichern von Daten oder zur Berechnung von Daten oder zur Verwendung als Selbstbeobachtung (z. Das Einkapseln von Daten und Funktionen in eine separate Struktur wird als Datenkapselung bezeichnet. In der Kapselung wird tatsächlich Daten und zugehörige Betriebsmethoden in eine unabhängige Einheit eingekapselt, sodass auf Daten mit diesen zugeordneten Methoden zugegriffen werden können. Die Kapselung bietet Datensicherheit, die tatsächlich eine Möglichkeit ist, Daten zu verbergen.
Frage: Was ist die Reflexions -API? Wie wird es implementiert?
Antwort: Reflexion bezieht sich auf die Funktion, den Status und die Eigenschaften einer Klasse während der Laufzeit anzuzeigen und eine dynamische Verwaltung durchzuführen. Diese Funktionen werden durch einige integrierte Klassenreflexions-APIs wie Klasse, Methode, Feld, Konstrukteure usw. bereitgestellt. Beispiel für die Verwendung: Verwenden Sie die GetName-Methode der Java-Reflexions-API, um den Klassennamen zu erhalten.
Frage: Wird der JVM selbst den Cache beibehalten? Ist es im Haufen zugewiesene Objekte oder ist der Haufen des Betriebssystems oder der vom JVM selbst verwaltete Haufen? Warum?
Antwort: Ja, der JVM selbst verwaltet den Cache, der Objekte im Haufen erstellt und diese Objekte im Stapel verweist.
Frage: Was ist virtueller Gedächtnis?
Antwort: Virtueller Speicher wird auch als erweiterter Speicher bezeichnet, und es gibt tatsächlich keinen wirklichen physischen Gedächtnis.
Frage: Kann die Methode gleichzeitig statisch und synchronisiert werden?
Antwort: Ja. Wenn Sie dies tun, erwirbt die JVM die Sperre auf der mit diesem Objekt zugeordneten Java.lang.Class -Instanz. Dies ist gleich:
synchronisiert (xyz.class) {
}
Frage: Was ist der Unterschied zwischen String und StringOkenizer?
Antwort: StringOkenizer ist eine Werkzeugklasse, die zum Spalten von Zeichenfolgen verwendet wird.
StringTokenizer st = new StringTokenizer ("Hallo Welt"); while (St.Hasmoretokens ()) {System.out.println (St.NextToken ());}
Ausgabe:
Hallo
Welt
Frage: Was sind die Eigenschaften von vorübergehenden Variablen?
Antwort: Die transiente Variable wird nicht serialisiert. Wenn beispielsweise eine Klasse, die die serialisierbare Schnittstelle implementiert, in den Objektstream serialisiert wird, werden Variablen des Typs Transienten nicht in den Stream geschrieben. Gleichzeitig ist der entsprechende variable Wert null, wenn der entsprechende variable Wert deserialisiert wurde.
FRAGE: Welche Container verwenden ein Grenzlayout als Standardlayout?
Antwort: Fenster, Rahmen, Dialogfeld.
Frage: Wie kann man verstehen, was Synchronisation ist?
Antwort: Die Synchronisation wird verwendet, um den Zugriff gemeinsamer Ressourcen zwischen mehreren Threads zu steuern, um sicherzustellen, dass nur ein Thread gleichzeitig auf diese Ressource zugreifen kann. In einem asynchron geschützten Multi-Thread-Programm kann ein weiterer Thread seinen Wert verwenden oder aktualisieren, wenn ein Thread eine gemeinsame Variable ändert. Die Synchronisation vermeidet die Erzeugung von schmutzigen Daten.
Synchronisieren Sie die Methoden:
public synchronisierte void method1 () {// Angemessener methodbezogener Code.}Synchronisieren Sie die Codeblöcke innerhalb der Methode:
public myFunction () {synchronisiert (this) {// synchronisierter Code hier. }}Die oben genannten ist eine Zusammenstellung der Informationen für Java -Interviewfragen. Wir werden in Zukunft weiterhin relevante Informationen hinzufügen. Vielen Dank für Ihre Unterstützung für diese Website!