Task I

Was ist eine Datenstruktur und welche Bestandteile hat sie? Sie kann eine große Menge an Daten aufbewahren/organisieren und gleichzeitig einen sequentiellen Zugriff ermöglichen. Die Bestandteile sind eine effiziente Speicherung von Daten und der Zugriff auf bereits gespeicherte Daten muss ebenfalls effizient sein. Welche Daten bzw. Informationen enthält ein Stack Frame in einem Call Stack? – Die aktuellen Werte aller Variablen, die in der Methode definiert worden sind – Die aktuellen Werte der Eingabeparameter, die in einer Methode definiert worden sind – Die aktuelle Instruktion, die ausgeführt wird – Den Rückgabewert, nachdem dieser erzeugt wurde Was passiert, wenn die Kapazität eines JVM-Stacks überschritten wird? Die JVM wird eine Fehlermeldung generieren und die Anwendung beenden. Wie viele Stack Frames dürfen in einem Call Stack vorhanden sein? Wer bestimmt das? Die Kapazität des Call-Stacks kann vorgegeben sein oder dynamisch definiert werden. Der Prozess verwaltet den Speicherplatz. Was ist die erste Methode, die zum Call Stack der JVM hinzugefügt wird? Die main() - Methode

Task II
Was ist ein Thread? Ist ein eigenständiger Ablauf im Kontext des Gesamtablaufs eines Programms Was unterscheidet ein Prozess von einem Thread? Ein Prozess kann mehrere Threads enthalten. Ein Prozess ist der Gesamtablauf und der Thread ein Teil davon Was unterscheidet ein Hintergrund-Thread von einem benutzerdefinierten? Benutzerdefinierte Threads werden explizit vom Programmierer definiert und gestartet. Hintergrund-Threads werden von der JVM bei Bedarf gestartet, definiert und ggf. beendet. Ist ein Haupt-Thread benutzerdefiniert oder hintergründig? hintergründig Was ist eine blockierende Operation? k.A.

Task III
In einer Java-Anwendung werden vom Haupt-Thread zwei weitere Threads erzeugt. Einer davon verantwortet die gesamte Netzwerk-Kommunikation und der andere wird die Schnittstelle zum Benutzer gestalten und verwalten. Beantworten Sie bitte die folgenden Fragen: Wie viele Prozesse existieren in dieser Anwendung? Einer Wie viele Call-Stacks sind in diesem Szenario vorhanden? 3 Stück (Jeder Thread verfügt über einen eigenen Call-Stack) In welchen Formen können die beiden kreierten Threads miteinander Daten austauschen?

Mit der synchronisierten und der asynchronen Kommunikation

Task IV
Wie wird der Ablauf eines OO-Programm bestimmt? Durch Kommunikation zwischen Objekten. Die Kommunikation erfolgt durch einen Austausch von Nachrichten zwischen Objekten. Beschreiben Sie bitte den Begriff „Object-Messaging Paradigma“. Ein Objekt a einer Klasse X möchte auf eine Methode des Objekts b der der Klasse Y zugreifen, indem Objekt a die Methode von Objekt b aufruft. Man kann diesen Methodenaufruf auch als eine Nachricht von Objekt a an Objekt b interpretieren. Was ist eine „Bootstrap-Methode? Sie ist eine Starter-Operation, die beim Hochfahren ausgeführt wird um die Ausführung anzustoßen Was ist die Bootstrap-Methode in einem Java Programm? Die main()-Methode Nach welchem Prinzip werden bei einem Methodenaufruf in Java Parameter übergeben? Bei Variablen wird die pass by value Methode genutzt, bei Objekten die pass by reference Methode.

Task V
Gegeben ist folgender Pseudocode, die eine Sequenz von Operationen für einen Stack definiert: 1. create stack 2. push(TTTT) 3. push(MMMM) 4. push(BBB) 5. pull() 6. push(KK) 7. push(TTTTT) 8. pull() 9. push(G) 10. pull() 11. pull() 12. push(HHHHHH) 13. pull(FFF) → ich nehme an er meint push(FFF) Beschreiben Sie den Zustand des Stacks nach der Ausführung der Zeilen 5, 10 und 13. Benutzen Sie dazu drei graphische Darstellungen, die jeweils den Stack, die ausgeführten Operationen und das Ergebnis darstellen. Nach Zeile 5: Stack: MMMM,TTTT Ergebnis: BBB Operationen: create stack, push(TTTT), push(MMMM), push(BBB), pull() (Punkt 1-5) Nach Zeile 10: Stack: KK, MMMM, TTTT Ergebnis: G Operationen: Punkt 1-10

Nach Zeile 13: Stack: FFF, HHHHHH, MMM, TTTT Ergebnis: Operationen: Punkt 1-13