Kompilat verständnis Frage

xoox

Mitglied
Hallo,

nach dem ich nun mein erstes Java Programm kompiliert habe, und es mir im Editor angeschaut habe, war ich doch über die ganzen Sonderzeichen verwundert:
Êþº¾ 3 
    
    <init> ()V Code LineNumberTable main ([Ljava/lang/String;)V
SourceFile HelloWorld.java     
Hallo JavaFan   
HelloWorld java/lang/Object java/lang/System out Ljava/io/PrintStream; java/io/PrintStream println (Ljava/lang/String;)V !           *· ± 
    %   ² ¶ ± 

Sehen die Sonderzeichen wirklich so aus oder kann mein Editor die class Datei gar nicht Fehlerfrei aufrufen?

Und verstehe ich das richtig das der geschwindigkeits Vorteil gegenüber eines Interpreters da liegt,
das im Vorfeld schon der ganze Code umgebaut wird also alle Objekte schon auseinander genommen werden und letztendlich aus der ganzen Masse nur noch ein Prozedurales Programm entsteht, also der Java "Interpreter" nur noch den Code von oben nach unter lesen und übersetzen muss?
 
Zuletzt bearbeitet:
G

Gast2

Gast
class Dateien sind Maschinencode, die kannst du so ohne weiteres mit nem Texteditor nicht öffnen.
Was genau willst du da denn rauslesen?
 

Kevin94

Top Contributor
Wenn dein Editor die Zeichen so darstellt, dann werden sie wohl auch so aussehen. Das das keinen Sinn für einen Menschen ergibt ist logisch, denn der ByteCode in den .class Dateien ist dazu gedacht für den Computer möglichst einfach zu interpretieren zu sein und möglichst platzsparend. Der Geschwindigkeitsvorteil von Java gegenüber von Skriptsprachen liegt eben darin, dass der ByteCode schon vorkompiliert ist, und somit das aufwendige Parsing des Quellcodes zu Laufzeit entfällt.
 

xoox

Mitglied
Okay, dann habe ich mir das schon richtig gedacht,
gibt es keine Möglichkeit den erzeugten Maschienencode den der Interpreter aus dem Bytecode erzeugt, irgendwo einzusehen, also wird der irgendwo auf der Festplatte zwischen gespeichert?
 

Kevin94

Top Contributor
Die JVM erzeugt keinen Maschinencode aus dem Bytecode (wenn man von JIT mal absieht), desshalb kannst du ihn auch nicht einsehen. Der ByteCode wird so wie er ist von der JVM ausgeführt. Die JVM ist nichts anderes als ein Emulator für einen Prozessor, der Java ByteCode ausführen kann. Der Maschinencode der also ausgeführt wird, ist der der in java.exe drinsteht (und vielen dll's).
 

Sesostris

Aktives Mitglied
Aber du kannst dir den Bytecode ansehen, wenn du deine class-Datei mit einem Hexeditor öffnest. Genug Zeit und Muße vorausgesetzt, kannst du dann Block für Block die Opcodes mittels dieser Liste wieder in Mnemonics übersetzen und die einzelnen Schritte auf Ebene der virtuellen Maschine nachvollziehen.
 

xoox

Mitglied
Das geht mit
Code:
javap
denke ich einfacher.

Ein Disassembler ist ein Werkzeug, welches den Bytecode und die Struktur einer Java-Klassendatei anzeigt.

c:\ipartner>javap HelloWorld

Compiled from "HelloWorld.java"
public class HelloWorld {
public HelloWorld();
public static void main(java.lang.String[]);
}

c:\ipartner>

Kevin der javap zeigt nur die Struktur von meinen kompilierten Programm an:
Java:
public class HelloWorld {

    public static void main( String args[] )
    {
        System.out.println("Hallo JavaFan");
    }

}

Okay es gibt also keine Möglichkeit, den Maschienencode den die JVM aus dem Bytecode dem Prozessor übergibt nach dem ausführen noch einmal einzusehen.

Entschuldigt wenn ich mich undeutlich ausgedrückt habe, lese mich erst seit heute in die Tematik ein:)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
KogoroMori21 Polymorphie-Verständnis Java Basics - Anfänger-Themen 5
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
T Methoden Verständnis Java Basics - Anfänger-Themen 14
M Java Code Verständnis Java Basics - Anfänger-Themen 4
M Java Code Verständnis Java Basics - Anfänger-Themen 2
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
K nur für das verständnis Java Basics - Anfänger-Themen 3
B Verständnis Frage zu der Aufgabe Java Basics - Anfänger-Themen 30
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
J Code Verständnis Java Basics - Anfänger-Themen 9
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
Y MVC MouseEvent Verständnis Java Basics - Anfänger-Themen 24
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
M If Verständnis Problem Java Basics - Anfänger-Themen 2
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
D Hilfe bei Verständnis von Aufgabe Java Basics - Anfänger-Themen 1
I Verständnis Frage wegen einer Aufgabe Java Basics - Anfänger-Themen 10
P verständnis Frage Refernzen und Objekte Java Basics - Anfänger-Themen 1
S Verständnis - Frage mehrere SQL Statements in While Schleife Java Basics - Anfänger-Themen 0
J java syntax verständnis Java Basics - Anfänger-Themen 6
M Verständnis von Deadlocks Java Basics - Anfänger-Themen 2
C Klassen/Objekte Verständnis Java Basics - Anfänger-Themen 8
O Singleton Verständnis Java Basics - Anfänger-Themen 4
C Allgemeines Verständnis For-Schleife Java Basics - Anfänger-Themen 3
vodkaz For Schleife Verständnis Problem Java Basics - Anfänger-Themen 4
R Input/Output MVC - Frage zum Verständnis Java Basics - Anfänger-Themen 5
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
J Musterlösung Verständnis Frage zu Math.abs() Java Basics - Anfänger-Themen 5
R RandomAccessFile verständnis Problem Java Basics - Anfänger-Themen 10
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
H Überladen Verständnis Java Basics - Anfänger-Themen 3
J Compiler-Fehler Verständnis Problem bei Compiler-Warning Java Basics - Anfänger-Themen 7
E Verständnis zu einem Rekursionsbeispiel Java Basics - Anfänger-Themen 12
F Verständnis Frage - && Java Basics - Anfänger-Themen 2
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
O Frage zu Verständnis von Collection Java Basics - Anfänger-Themen 4
JavaKaffee Minimax-Algorithmus Verständnis Java Basics - Anfänger-Themen 12
C Methoden Frage zu Verständnis eines Beispiels Java Basics - Anfänger-Themen 3
M Polymorphie Cast:Verständnis und Ausführung Java Basics - Anfänger-Themen 10
M Verständnis Frage Java Basics - Anfänger-Themen 11
M Verständnis-Probleme mit eigenen Klassen Java Basics - Anfänger-Themen 2
T Verständnis von "final" und "static" Java Basics - Anfänger-Themen 6
U ADT verständnis Problem Java Basics - Anfänger-Themen 18
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
F ArrayList() Verständnis Java Basics - Anfänger-Themen 14
M Verständnis von PrintWriter Java Basics - Anfänger-Themen 12
M Verständnis einiger Zeilen Java Basics - Anfänger-Themen 4
P Codeschnipsel Verständnis Problem (Array) Java Basics - Anfänger-Themen 6
F Groovy Verständnis ConfigSlurper Java Basics - Anfänger-Themen 7
H Verständnis Strategy Pattern Java Basics - Anfänger-Themen 4
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
J Verständnis Problem mit return --> Klausuraufgabe Java Basics - Anfänger-Themen 4
deimosmuc Hilfe zum Verständnis bei Vererbung Java Basics - Anfänger-Themen 11
T Verständnis-Frage Java Basics - Anfänger-Themen 2
F (Verständnis)Problem: Zahl auf 2 Nachkommastellen runden Java Basics - Anfänger-Themen 5
E Verständnis frage zum return wert eines Arrays Java Basics - Anfänger-Themen 7
S Frage zu Verständnis und Logik Java Basics - Anfänger-Themen 5
P Verständnis bzgl. MVC Java Basics - Anfänger-Themen 11
M Klassen und Objekte => richtiges Verständnis? Java Basics - Anfänger-Themen 6
B Exception verständnis Problem Java Basics - Anfänger-Themen 2
V KSKB zum Verständnis von Graphics und paintComponent Java Basics - Anfänger-Themen 6
A Array Verständnis Frage Java Basics - Anfänger-Themen 4
L Hashtable Verständnis Frage Java Basics - Anfänger-Themen 4
M Verständnis-Problem Java Basics - Anfänger-Themen 4
H Verständnis: Methode Java Basics - Anfänger-Themen 2
Z Verständnis Java Basics - Anfänger-Themen 4
R Verständnis Java Basics - Anfänger-Themen 4
R Verständnis bei Listen Java Basics - Anfänger-Themen 2
R Verständnis Klassen Java Basics - Anfänger-Themen 9
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben