Grundlegende Java-spezifische Fragen zur Interview verstehen

7

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:

  • Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?
  • Geben Sie einen einfachen Weg, 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?

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?

    
Harry Joy 05.03.2011, 17:13
quelle

8 Antworten

17

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?

Mark Longair 05.03.2011, 17:36
quelle
3
  

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.

    
Alex Nikolaenkov 05.03.2011 17:19
quelle
3
  

Bietet Java ein Konstrukt, um die Größe eines Objekts zu ermitteln?

Nein.

  

Geben Sie eine einfache Methode an, um herauszufinden, wie lange eine Methode zur Ausführung benötigt, ohne ein Profiling-Tool zu verwenden?

%Vor%
  

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.

    
Mike Samuel 05.03.2011 17:30
quelle
1
  

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.

    
Stas Kurilin 05.03.2011 17:20
quelle
0
  

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

    
Johan Sjöberg 05.03.2011 17:20
quelle
0
  

Bietet Java ein beliebiges Konstrukt an?   die Größe eines Objekts herausfinden?

Nein, tut es nicht.

  

Geben Sie einen einfachen Weg, um das herauszufinden   Zeit, die eine Methode zur Ausführung benötigt   ohne Verwendung eines Profilierungswerkzeugs?

%Vor%
  

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. Ссылка

    
duffymo 05.03.2011 17:23
quelle
0

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

    
Orbit 05.03.2011 17:18
quelle
0

Die Größe von (serialisierbaren) Objekten kann relativ einfach gefunden werden.

%Vor%

Ausgabe:

%Vor%     
Andrew Thompson 05.03.2011 17:54
quelle

Tags und Links