Lassen Sie uns zunächst über den Unterschied zwischen „final“, „finally“ und „finalize“ sprechen.
final? Modifikator (Schlüsselwort) Wenn eine Klasse als final deklariert wird, bedeutet dies, dass sie keine neuen Unterklassen mehr ableiten und nicht als übergeordnete Klasse vererbt werden kann. Daher kann eine Klasse nicht sowohl abstrakt als auch final deklariert werden. Deklarieren Sie Variablen oder Methoden als endgültig, um sicherzustellen, dass sie während der Verwendung nicht geändert werden. Als final deklarierte Variablen müssen bei der Deklaration einen Anfangswert erhalten und können nur in nachfolgenden Referenzen gelesen und nicht geändert werden. Auch als final deklarierte Methoden können nur verwendet und nicht überladen werden.
Schließlich? Stellen Sie einen endgültigen Block bereit, um während der Ausnahmebehandlung alle Bereinigungsvorgänge durchzuführen. Wenn eine Ausnahme ausgelöst wird, wird die entsprechende Catch-Klausel ausgeführt und die Steuerung geht an den „finally“-Block über (falls vorhanden).
finalisieren? Methodenname. Die Java-Technologie ermöglicht die Verwendung der finalize()-Methode, um notwendige Aufräumarbeiten durchzuführen, bevor der Garbage Collector das Objekt aus dem Speicher löscht. Diese Methode wird vom Garbage Collector für dieses Objekt aufgerufen, wenn er feststellt, dass auf das Objekt nicht verwiesen wird. Es ist in der Object-Klasse definiert und wird daher von allen Klassen geerbt. Unterklassen überschreiben die finalize()-Methode, um Systemressourcen zu organisieren oder andere Bereinigungsarbeiten durchzuführen. Die finalize()-Methode wird für das Objekt aufgerufen, bevor der Garbage Collector es löscht.
Zweitens der Unterschied zwischen HashMap und Hashtable.
Dabei handelt es sich allesamt um Klassen, die zur Map-Schnittstelle gehören und die Zuordnung eindeutiger Schlüssel zu bestimmten Werten implementieren.
Die HashMap-Klasse sortiert oder sortiert nicht. Es erlaubt einen Nullschlüssel und mehrere Nullwerte.
Hashtable ähnelt HashMap, lässt jedoch keine Nullschlüssel und Nullwerte zu. Es ist auch langsamer als HashMap, da es synchron ist.
Drittens: String s = new String("xyz"); wie viele String-Objekte werden erstellt?
Es gibt zwei Objekte, eines ist „xyx“ und das andere ist das Referenzobjekt, das auf „xyx“ zeigt.
Viertens: Was ist der Unterschied zwischen „sleep()“ und „wait()“?
Die Methode „sleep()“ ist eine Methode, die den Thread für einen bestimmten Zeitraum stoppt. Nach Ablauf des Ruheintervalls nimmt der Thread die Ausführung nicht unbedingt sofort wieder auf. Dies liegt daran, dass in diesem Moment möglicherweise andere Threads ausgeführt werden und die Ausführung nicht aufgegeben werden soll, es sei denn (a) der „aufwachende“ Thread hat eine höhere Priorität
(b) Der laufende Thread ist aus anderen Gründen blockiert.
Wenn wait() für die Thread-Interaktion verwendet wird und der Thread einen wait()-Aufruf an ein Synchronisationsobjekt x ausgibt, unterbricht der Thread die Ausführung und das aufgerufene Objekt wechselt in den Wartezustand, bis es aktiviert wird oder die Wartezeit abläuft.
Fünftens, was ist falsch an short s1 = 1; s1 = s1 + 1;?
short s1 = 1; s1 = s1 + 1; ist falsch, s1 ist vom Typ short, s1+1 ist vom Typ int und kann nicht explizit in den Typ short konvertiert werden. Es kann als s1 =(kurz)(s1 + 1) geändert werden. kurz s1 = 1; s1 += 1 ist richtig.
Sechstens der Unterschied zwischen Overload und Override. Können überladene Methoden den Typ des Rückgabewerts ändern?
Methodenüberschreibung und -überladung sind unterschiedliche Erscheinungsformen des Java-Polymorphismus. Überschreiben ist eine Manifestation des Polymorphismus zwischen Elternklassen und Unterklassen, und Überladung ist eine Manifestation des Polymorphismus in einer Klasse. Wenn eine in einer Unterklasse definierte Methode denselben Namen und dieselben Parameter wie ihre übergeordnete Klasse hat, spricht man von einer überschreibenden Methode. Wenn ein Objekt einer Unterklasse diese Methode verwendet, ruft es die Definition in der Unterklasse auf. Dadurch scheint die Definition in der übergeordneten Klasse „abgeschirmt“ zu sein. Wenn in einer Klasse mehrere Methoden mit demselben Namen definiert sind und diese eine unterschiedliche Anzahl von Parametern oder unterschiedliche Parametertypen haben, spricht man von Methodenüberladung. Eine überladene Methode kann den Typ des Rückgabewerts ändern.
Siebtens: Die Elemente im Set können nicht wiederholt werden. Welche Methode wird also verwendet, um zu unterscheiden, ob sie wiederholt werden oder nicht? Was ist der Unterschied zwischen ihnen?
Die Elemente im Set können nicht wiederholt werden. Verwenden Sie daher die Methode iterator(), um zu unterscheiden, ob sie wiederholt werden oder nicht. equal() bestimmt, ob zwei Mengen gleich sind.
Die Methoden equal() und == bestimmen, ob ein Referenzwert auf dasselbe Objekt zeigt. equal() wird in der Klasse überschrieben, um „true“ zurückzugeben, wenn die Inhalte und Typen zweier separater Objekte übereinstimmen.
Achtens: Was ist der Unterschied zwischen Fehler und Ausnahme?
Ein Fehler stellt ein ernstes Problem in einer Situation dar, in der eine Wiederherstellung nicht unmöglich, aber schwierig ist. Zum Beispiel Speicherüberlauf. Es ist unmöglich, von einem Programm zu erwarten, dass es mit einer solchen Situation zurechtkommt.
Ausnahme stellt ein Design- oder Implementierungsproblem dar. Das heißt, es stellt eine Situation dar, die bei normaler Ausführung des Programms niemals eintreten würde.
Neuntens nennen Sie mir eine Laufzeitausnahme, die Sie am häufigsten sehen.
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
Zehntens können die Elemente im Set nicht wiederholt werden. Welche Methode wird also verwendet, um zu unterscheiden, ob sie wiederholt werden oder nicht? Was ist der Unterschied zwischen ihnen?
Die Elemente im Set können nicht wiederholt werden. Verwenden Sie daher die Methode iterator(), um zu unterscheiden, ob sie wiederholt werden oder nicht. equal() bestimmt, ob zwei Mengen gleich sind.
Die Methoden equal() und == bestimmen, ob ein Referenzwert auf dasselbe Objekt zeigt. equal() wird in der Klasse überschrieben, um true zurückzugeben, wenn die Inhalte und Typen zweier separater Objekte übereinstimmen.