Java-Interviewfragen zu den neuesten Grundkenntnissen
1. Was bedeutet das statische Schlüsselwort? Ist es möglich, eine private oder statische Methode in Java zu überschreiben?
„statisch“ gibt an, dass auf eine Mitgliedsvariable oder Mitgliedsmethode ohne eine Instanzvariable der Klasse, zu der sie gehört, zugegriffen werden kann.
Statische Methoden in Java können nicht überschrieben werden, da Methodenüberschreibungen auf einer dynamischen Bindung zur Laufzeit basieren, während statische Methoden zur Kompilierzeit statisch gebunden werden. Statische Methoden sind keiner Instanz der Klasse zugeordnet.
Private Methoden können in Java nicht überschrieben werden. Da die von private geänderten Variablen und Methoden nur in der aktuellen Klasse verwendet werden können, kann auf die privaten Variablen und Methoden in der geerbten Klasse nicht zugegriffen werden, wenn andere Klassen die aktuelle Klasse erben.
2 Kann in statischen Zugriff auf nicht statische Variablen in der Umgebung verwendet werden?
Nein. Statische Variablen gehören zu Klassen. Wenn eine Klasse von der virtuellen Maschine geladen wird, werden statische Variablen initialisiert. Nicht statische Variablen gehören zu Instanzen. Zu diesem Zeitpunkt wurde die Instanz nicht erstellt und der Compiler meldet einen Fehler
3. Java-Basistypen, was ist automatisches Unboxing?
Grundtypen: Byte, Short, Int, Float, Long, Double, Boolean, Char
Autoboxing: Es ist der Java-Compiler, der die Grundtypen und die entsprechenden Objekttypen umschließt eine Bekehrung zwischen ihnen. Konvertieren Sie beispielsweise int in Integer usw. Im Gegenteil, es handelt sich um ein automatisches Unboxing
4. Was bedeutet das Überschreiben und Überladen von Java-Methoden?
Methodenüberladung in Java tritt auf, wenn zwei oder mehr Methoden in derselben Klasse mit demselben Namen, aber unterschiedlichen Parametern vorhanden sind. Das Überschreiben einer Methode ist eine Methode für eine Unterklasse, um eine übergeordnete Klasse neu zu definieren. Methodenüberschreibungen müssen denselben Methodennamen, dieselbe Parameterliste und denselben Rückgabetyp haben
5. Was ist ein Konstruktor in Java? Was ist Konstruktorüberladung? Was ist ein Kopierkonstruktor?
Wenn ein neues Objekt erstellt wird, wird der Konstruktor aufgerufen. Jede Klasse verfügt über einen Konstruktor. Wenn für die Klasse kein Konstruktor bereitgestellt wird, erstellt der Compiler automatisch einen Standardkonstruktor
Das Überladen von Konstruktoren in Java ist dem Überladen von Methoden sehr ähnlich. Für eine Klasse können mehrere Konstruktoren erstellt werden, und jeder Konstruktor muss über eine eigene eindeutige Parameterliste verfügen
6. Unterstützt Java Mehrfachvererbung?
Nicht unterstützt. Es wird nur die Einzelvererbung unterstützt, d. h. eine Klasse hat nur eine übergeordnete Klasse. Implements können verwendet werden, um mehrere Schnittstellenerweiterungen zu implementieren
7. Der Unterschied zwischen Schnittstellen und abstrakten Klassen
1 Alle Methoden in der Schnittstelle sind implizit abstrakt. Eine abstrakte Klasse kann sowohl abstrakte als auch nicht abstrakte Methoden enthalten
2 Die in der Schnittstelle deklarierten Variablen sind standardmäßig endgültig, während die abstrakte Klasse nicht endgültige Variablen enthalten kann
3 Die Schnittstellen-Memberfunktionen sind standardmäßig öffentlich. Die Mitgliedsfunktionen einer abstrakten Klasse können privat, geschützt oder öffentlich sein.
4 Die Klasse muss nicht alle Methoden in der abstrakten Klasse und der Schnittstellendeklaration implementieren Zusammenfassung
8. Was ist der Unterschied zwischen jdk und jre?
Die Java Runtime Environment (JRE) ist die Java Virtual Machine für das auszuführende Java-Programm. Sie enthält auch die Browser-Plug-Ins, die zum Ausführen des Applets erforderlich sind. Das Java Development Kit (JDK) ist ein vollständiges Java-Softwareentwicklungspaket, einschließlich JRE, Compiler und anderen Tools (z. B. Javadoc, Java Debugger), mit dem Entwickler Java-Anwendungen entwickeln, kompilieren und ausführen können
9. Was ist Wertübertragung und Referenzübertragung?
Wertübertragung ist eine Kopie der Variablen.
Referenzübergabe erfolgt im Allgemeinen für Objekttypvariablen. Eine Änderung der Kopie wirkt sich auf die Originalvariable aus.
Was ist der Unterschied zwischen einem Prozess und einem Faden?
Ein Prozess ist eine ausgeführte Anwendung und ein Thread ist eine Ausführungssequenz innerhalb eines Prozesses. Ein Prozess kann mehrere Threads haben
Unterschiede:
1. Adressraum und andere Ressourcen: Prozesse sind unabhängig voneinander. Wird von Threads desselben Prozesses gemeinsam genutzt. Threads in einem Prozess sind in anderen Prozessen nicht sichtbar
2. Kommunikation: IPC-Kommunikation zwischen Prozessen. Threads können Prozessdatensegmente (z. B. globale Variablen) direkt lesen und schreiben, um zu kommunizieren. Um die Datenkonsistenz sicherzustellen, ist die Unterstützung der Prozesssynchronisierung und des gegenseitigen Ausschlusses erforderlich.
3 .Planung und Umschalten : Der Kontextwechsel zwischen Threads ist viel schneller als der Prozesskontextwechsel
In einem Multithread-Betriebssystem ist der Prozess keine ausführbare Einheit
11. Der Unterschied zwischen den Methoden und synchronisierte Codeblöcke
Synchronisierte Methoden verwenden standardmäßig dieses oder das aktuelle Klassenobjekt als Sperre
Synchronisierte Codeblöcke können auswählen, was gesperrt werden soll, was detaillierter ist als die Granularität synchronisierter Methoden . Wir können wählen, nur den Teil des Codes zu synchronisieren, der Synchronisierungsprobleme verursacht, und nicht die gesamte Methode
12 Deadlock
Deadlock wird durch mehrere Threads verursacht Ressourcenkonkurrenz Eine Art Stillstand, in dem keiner dieser Threads ohne äußere Kraft vorankommen kann. 4 notwendige Bedingungen für einen Stillstand
1. Bedingung des gegenseitigen Ausschlusses
3. Bedingungen für das Anfordern und Halten
4 Schleife
13. Wie kann sichergestellt werden, dass N Threads auf N Ressourcen zugreifen können, ohne einen Deadlock zu verursachen?
Eine sehr einfache Möglichkeit, Deadlocks zu vermeiden: Geben Sie die Reihenfolge an, in der Sperren erworben werden, und zwingen Sie Threads, Sperren in der angegebenen Reihenfolge zu erwerben. Wenn daher alle Threads in der gleichen Reihenfolge sperren und Sperren freigeben, kommt es zu keinem Deadlock
14. Was sind die grundlegenden Schnittstellen des Java-Collection-Class-Frameworks?
Sammlung, Satz, Liste, Karte
15. Funktionsweise von HashMap
HashMap wird in Form von Schlüssel-Wert-Paaren gespeichert . Hashmap erfordert eine Hash-Funktion, die HashCode- und Equals-Methoden verwendet, um Elemente zur Sammlung hinzuzufügen und aus der Sammlung abzurufen. Beim Aufruf von put berechnet HashMap den Hashwert des Schlüssels und speichert das Schlüssel-Wert-Paar am entsprechenden Index in der Sammlung. Wenn der Schlüssel bereits vorhanden ist, wird der Wert auf den neuen Wert aktualisiert. Einige wichtige Merkmale von HashMap sind seine Kapazität, sein Auslastungsfaktor und seine Erweiterungsgrenze
16. Wo spiegelt sich die Bedeutung von Hashcode und Equals wider?
Hashmap übergibt Hashcode und Equals der Schlüssel-Wert-Paar-Index
17. Was ist der Unterschied zwischen Hashmap und Hashtable?
Hashmap lässt zu, dass Schlüssel und Werte null sind, Hashtable lässt nicht zu, dass Schlüssel oder Werte null sind
Hashtable ist synchronisiert, Hashmap jedoch nicht
php Chinesische Website, viele kostenlose Java-Einführungs-Tutorials, willkommen zum Online-Lernen!
Das obige ist der detaillierte Inhalt vonFragen zu Java-Interviews mit den neuesten Grundkenntnissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!