2016-07-07 19 views
-6

, was die Bedeutung dieses unter Bytecode istIch frage mich, ob jemand kann mir sagen, wie die Bytecode zu verstehen

code: 
0: aload_0 
1: invokespecial #1;//Method Java/lang/Object."<init>":<u>; 
4: return 
+0

Warum möchten Sie Bytecode verstehen? – Jens

+1

vielleicht sollten Sie gehen und lesen https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html – eatSleepCode

+0

Sieht aus wie der Code eines leeren Konstruktors. 'aload_0' lädt das Argument 0 object auf den Stack, als nächstes ruft es den Konstruktor von' Object' auf und zuletzt gibt die Methode zurück (nothing/'void'). Konstruktoren sind "spezielle" Methoden unter der Haube und ihr Name ist '' in Stacktraces und so weiter. https://en.wikipedia.org/wiki/Java_bytecode_instruction_listings – zapl

Antwort

0

0: Ladespeicher Steckplatz 0 in den Stapel (Slot 0 ist in der Regel „diese“ außer in statische Methoden)

1: Methode in constant pool # 1 (der Kommentar verwiesen rufen sie es erzählt, ist der Standard-Konstruktor von Object)

4: return

wie die def sieht ault constructor

0

Verweisen Sie auf die JVM Specification Guide, um die Bytecode-Syntax und Semantik zu verstehen und wie sie von JVM verwendet wird.

+0

Danke ich werde es durchgehen. – Shilpa

+0

In der Zwischenzeit können Sie mir bitte einige Bücher über Bytecode vorschlagen. Ich möchte Bytecode im Detail verstehen. Wie ist es generiert und alle damit verbundenen Sachen – Shilpa

+0

Verweisen Sie auf diese Bytecode-Anleitung, die die meisten Ihrer Anforderungen erfüllen wird, glaube ich. –