Frage

In einer aktuellen Frage gestellt vor kurzem meiner einfältig Antwort viele meiner Missverständnisse über Java hervorgehoben, die JVM, und wie wird der Code kompiliert und ausgeführt werden. Dies hat den Wunsch in mir geschaffen, um mein Verständnis auf ein niedrigeres Niveau. Ich habe keine Probleme mit dem niedrigen Niveau Verständnis wie Montage wie auch immer Bytecode und die JVM mich verwechseln. Wie objektorientierter Code gebrochen wird auf einem niedrigen Niveau nach unten ist für mich verloren. Ich habe mich gefragt, ob jemand irgendwelche Vorschläge auf hatte, wie über die JVM-Bytecode und die unteren Ebene Funktionsweise von Java zu lernen. Gibt es irgendwelche Dienstprogramme gibt, mit denen Sie direkt schreiben und laufen Bytecode als ich die Hände auf Erfahrung mit etwas glauben, dass der beste Weg ist, in Verständnis zu wachsen? Zusätzlich und Anregungen zu diesem Thema lesen würde geschätzt.

Edit: Secondary Frage. So habe ich ein bisschen Unter Frage, gab die Antworten mir eine interessante Idee über die jvm zu lernen, was würden die Plausibilität eine wirklich einfache Sprache wie Brainf des Schreibens ** k oder Ook nur in einer lesbaren Syntax (vielleicht könnte ich es sogar entwickeln zu unterstützen oo schließlich), die Bytecode kompiliert in sein? Wäre das eine gute Lernerfahrung sein?

War es hilfreich?

Lösung

nachlesen:. die JVM-Spezifikation

Sie möchten vielleicht auch mit BCEL - es gibt auch andere Bibliotheken um Bytecode für die Manipulation, aber das ist wohl der bekannteste ein.

Andere Tipps

Der Apache BCEL ermöglicht es, zu analysieren und Handfertigkeit .class Dateien von Bytecode.

javap ermöglicht es Ihnen, zu zerlegen bestehende .class-Dateien. Es ist besonders nützlich für schnelle Testklassen Klopfen bis zu verstehen, was wirklich unter der Decke los ist.

Ich habe gelernt, durch das Lesen die ASM-Tutorial und Ausmisten etwa mit der Bibliothek selbst.

IMHO, ist ASM besser als BECL.

  

BCEL wird bereits verwendet   erfolgreich in mehreren Projekten,   wie Compiler, Optimizern   obsfuscators, Code-Generatoren und   Analyse-Tools. Leider gibt   hat sich nicht viel Entwicklung los gewesen   in den letzten Jahren . Fühlen sich frei   aushelfen oder Sie möchten vielleicht ein haben   Blick in das ASM-Projekt an   ObjectWeb.   - http://jakarta.apache.org/bcel/

Es gibt nur eine zuverlässige Quelle für JVM Verständnis

Die Java ® Virtual Machine Specification Java SE 7 Ausgabe

http://docs.oracle.com/javase/ specs / JVMs / SE7 / html / index.html

Programmierung für die Java Virtual Machine ein gutes Buch zu diesem Thema. (Disclosure:. Ich mit dem Autor arbeiten)

Für das Verständnis Java / die Architektur der JVM: s. Wikipedia, die Spezifikationen und den Quellcode

Für das Verständnis, wie objektorientierter Code auf einem niedrigen Niveau durchgeführt wird. Versuchen und emulieren Features wie Vererbung / Polymorphismus / Verkapselung in einer unteren Ebene Sprache wie C

In C Sie die oben durch, zum Beispiel zu erreichen, eine Kombination von Funktionszeigern und verschachtelten Strukturen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top