Letzten Tag stand ich vor einem Interview und sie stellten mir Java-Fragen, bei denen ich für einige Fragen die Antwort nicht kannte. Ich bin gespannt auf die Antwort auf diese Frage. Interviewer hat mir die Antwort nicht erzählt. Ich stelle diese Fragen hier:
Willst du die Antworten der obigen Frage wissen, damit es mir beim nächsten Mal helfen kann.
Erklärungen, Anmerkungen und / oder relevante Links zu der Spezifikation würden sehr über die einfachen Antworten geschätzt werden - und was ist eine gute Weise, dieses Zeug zu lernen?
Ich denke, dass all diese Fragen beantwortet werden können, indem nach vorhandenen Stack Overflow-Fragen gesucht wird. Der Grund, warum ich denke, dass es sich lohnt, diese Frage mit Links zu früheren Antworten zu beantworten, ist, dass Sie nach vielen verschiedenen Fragen gefragt haben, von denen jedes für sich interessant ist. Es ist nicht so wahrscheinlich, dass Sie eine eingehende Diskussion dieser Fragen bekommen werden, wenn Sie sie alle zusammen fragen, aber in den Antworten und Kommentaren zu früheren Fragen finden Sie hier eine Menge Details und Diskussionen, die (a) interessant und interessant sein können (b) kann in weiteren Interviews helfen. (Es kann durchaus eine bessere Wahl geben - das sind nur die ersten vernünftigen SO Antworten, die ich gefunden habe.)
Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?
Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Wenn ich am Ende des try Blockes return schreibe, wird der finally Block trotzdem ausgeführt?
Wenn ich System.exit (0) schreibe; wird der finally block am Ende des try-Blocks noch ausgeführt?
Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
AFAIK Nr.
Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?
Messen Sie die Zeit mit System.currentTimeMillis()
, System.nanoTime()
.
Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Eine detaillierte Erklärung finden Sie in diesem Thema .
Wenn ich am Ende des try-Blocks return schreibe, wird der finally-Block noch ausgeführt?
ja.
Wenn ich System.exit (0) schreibe; wird der finally block am Ende des try-Blocks noch ausgeführt?
nein.
Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
Nein.
%Vor%Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?
Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Eine geprüfte Ausnahme ist Throwable
, die nicht von java.lang.Error
oder java.lang.RuntimeException
ausgeht. Der Java-Compiler gibt Ihnen einen Fehler, wenn Sie überprüfte Ausnahmen nicht behandeln oder explizit propagieren.
Wenn ich am Ende des try-Blockes return schreibe, wird der finally-Block noch ausgeführt?
Ja
Wenn ich System.exit (0) schreibe; wird der finally block am Ende des try-Blocks noch ausgeführt?
Vielleicht. Wenn es ein SecurityManager
gibt, kann es ein SecurityException
werfen anstatt zu beenden, was den finally
Block auslöst.
Wenn Ihr Stapel zu groß ist, kann der Aufruf von System.exit
zu einer Stapelüberlauf-Ausnahme führen, die den finally
-Block auslöst.
Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
Es gibt keinen plattformübergreifenden / Cross-VM-Weg, wie ich weiß.
Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?
Erstellen Sie ein neues Date () vor und nach der Ausführung.
Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Sie sollten eingecheckte Ausnahmen in try / catch-Block umbrechen
Wenn ich am Ende des try-Blocks return schreibe, wird der finally-Block noch ausgeführt?
ja
Wenn ich System.exit (0) schreibe; wird der finally block am Ende des try-Blocks noch ausgeführt?
Nein.
Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
Nicht wirklich. Sie könnten ein Objekt erstellen und die Speicherunterschiede notieren oder vielleicht die Spezifikation lesen, um zu sehen, woraus ein Objekt besteht.
Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?
So:
%Vor%Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Eine markierte Ausnahme ist eine Ausnahme, die im Abschnitt throws
einer Routine deklariert ist. In ähnlicher Weise sind nicht markierte Exporte diejenigen, die nicht deklariert sind, z. B. Unterklassen von RuntimeException
.
Wenn ich am Ende des try-Blocks return schreibe, wird der finally-Block noch ausgeführt?
Yup, zumindest auf der Sonne / Orakel jvm. Nicht schön, obwohl ..
Wenn ich System.exit (0) schreibe; wird der finally block am Ende des try-Blocks noch ausgeführt?
Nein
Bietet Java ein beliebiges Konstrukt an? die Größe eines Objekts herausfinden?
Nein, tut es nicht.
%Vor%Geben Sie einen einfachen Weg, um das herauszufinden Zeit, die eine Methode zur Ausführung benötigt ohne Verwendung eines Profilierungswerkzeugs?
Was sind geprüfte Ausnahmen und Laufzeitausnahmen?
Überprüfte Ausnahmen müssen abgefangen werden oder der Compiler wird markieren; Laufzeitausnahmen erfordern keine catch-Blöcke.
Wenn ich am Ende der Block versuchen, wird der Block schließlich blockieren noch ausführen?
Ja.
Wenn ich System.exit (0) schreibe; Am Ende der Versuch Block, wird das schließlich Block noch ausführen?
Nein. Ссылка
1.
Nein, nicht generell für Objekte. .length für Arrays und Strings ...
2.
%Vor%von Wie kann ich die Ausführung einer Methode in Java zeitgesteuert verarbeiten?
3.
unchecked Ausnahmen sind Fehler, siehe Ссылка
checked exceptions sind beispielsweise ungültige Benutzereingaben, Ausnahmen, die behandelt werden können.
4.
Der finally Block wird weiterhin ausgeführt
5.
Der finally Block wird nicht ausgeführt
Die Größe von (serialisierbaren) Objekten kann relativ einfach gefunden werden.
%Vor%Ausgabe:
%Vor%Tags und Links java