r18: java-internals

Werbung
Abteilung Informatik, Fach Programmieren
FHZ
Hochschule für Technik+Architektur Luzern
R18: JAVA-INTERNALS
R18: JAVA-INTERNALS
1. Heap (Halde) und Stack (Kellerspeicher) sind zwei wichtige Datenstrukturen im Zusammenhang mit der Ausführung eines Java-Programmes. Zählen Sie je zwei Merkmale zu diesen Datenstrukturen auf.
- Heap: in der Regel explizite Speicheranforderungen (vgl. new),
automatische Speicherfreigabe, Fragmentierung möglich, Zugriff
via Referenzen
- Stack: FIFO-Prinzip, keine Fragmentierung, implizite Speicheranforderung und -freigabe
2. Was wird auf dem Heap gespeichert? Zählen Sie auf.
- Objekte (d.h. Instanzvariablen), Verweise zu Methoden
3. Was wird auf dem Stack gespeichert? Zählen Sie auf.
- frame ð Laufzeitumgebung
- vars ð aktuelle Parameter, lokale Variablen
- optop ð Operanden, Zwischenergebnisse
4. Im Zusammenhang mit dem Heap ist die sogenannte "Müllabfuhr" von Bedeutung. Wie heisst der entsprechende englische
Ausdruck? Was ist ihre Aufgabe?
- Garbage Collection
- nicht mehr referenzierter Speicherbereich wird automatisch
wieder freigegeben bzw. als frei markiert
5. Illustrieren Sie mit einer Zeichnung, wie Objekte zur Laufzeit gespeichert werden. (Wie können Objekte persistent, d.h. ausserhalb der Laufzeit gespeichert werden?)
- z.B. mittels Serialisierung in einem File (alle Instanzvariablen,
welche nicht mit transient markiert sind)
R18_Internals-L, V15
© H. Diethelm
Seite 1/2
Abteilung Informatik, Fach Programmieren
FHZ
Hochschule für Technik+Architektur Luzern
R18: JAVA-INTERNALS
6. Was verstehen Sie unter dem Kürzel JVM? Was steckt dahinter?
- Java Virtual Machine
- Beschreibung eines Rechners
- entsprechend dieser Beschreibung wird der Java-Quellencode
in den Byte-Code übersetzt
7. Nach welchem Konzept arbeitet die JVM?
- stackbasiert
8. Die Übersetzung eines Quellenprogrammes in Maschinenbefehle erfolgt typisch via Compiler oder Interpreter. Wie steht's bei
Java?
- 1. Compiler: Quellencode ð Byte-Code
- 2. Interpreter bzw. JVM ð Maschinencode (Just in Time Compiler erkennt sich oft wiederholende Sequenzen und compiliert diese, d.h. die Interpretation ist dann für diese Sequenzen
nicht mehr notwendig)
R18_Internals-L, V15
© H. Diethelm
Seite 2/2
Herunterladen