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