Einführung:
Die interne Speicherverwaltung in Java bleibt für Lernende oft unsichtbar und abstrakt. Der JAVAVisualizer macht diese Prozesse Schritt für Schritt sichtbar. Die interaktive Web-Anwendung zeigt den Zusammenhang zwischen Programmcode und Speicherzustand auf einfache und verständliche Weise.
Projektziel:
Das primäre Ziel unseres Projekts war es, die komplexen Abläufe der Java-Speicherverwaltung für Studierende und Programmieranfänger greifbar und nachvollziehbar zu machen. Das Zusammenspiel von Stack und Heap ist nicht immer leicht nachvollziehbar. Auch das Verhalten von Objektreferenzen ist häufig schwer zu verstehen, da diese Vorgänge normalerweise im Hintergrund der JVM ablaufen. Deshalb wollten wir ein interaktives Lerntool entwickeln, das genau diese internen Prozesse visualisiert. Dabei stand bewusst nicht eine exakte technische Abbildung der Virtual Machine im Fokus. Vielmehr ging es um eine sinnvolle Reduktion, welche die wesentlichen Konzepte verständlich und anschaulich präsentiert.
Umsetzung:
Für die technische Realisierung entwickelten wir eine Client-Server-Architektur mit einem React-Frontend und einem Spring-Boot-Backend. Anstatt beliebigen Code zur Laufzeit auszuführen, basiert unser Tool auf vorab modellierten, validierten JSON-Zuständen. Dadurch sind die Demo-Abläufe verlässlich und reproduzierbar. Wir haben drei Demos erstellt. Diese bauen didaktisch aufeinander auf. Lernende können sie Schritt für Schritt durchlaufen. Der Visualizer stellt dabei den Programmcode, den Call- & Memory-Stack, den Heap sowie Referenzen farblich verknüpft dar. Um den Einstieg weiter zu erleichtern, haben wir zusätzlich eine begleitende „Learning Page“ mit Erklärungen der einzelnen Speicherbereiche integriert.
Resultat:
Als Ergebnis entstand ein funktionsfähiger und intuitiv bedienbarer Prototyp, der abstrakte Speicherstrukturen in ein visuell klares Modell übersetzt. Nutzende können nun bei jedem Methodensprung oder jeder Objektinstanziierung direkt beobachten, wie sich der Speicher konkret verändert. Unser Tool schlägt damit erfolgreich eine Brücke zwischen klassischen, theoretischen Lehrmitteln und komplexen Debuggern. Durch das Einbeziehen von Feedback seitens Dozierenden und Studierenden während der Entwicklung konnte die Benutzeroberfläche zudem optimal auf die Zielgruppe zugeschnitten werden. Der JAVAVisualizer bietet somit eine wertvolle Unterstützung im Studium, um typische Verständnisprobleme beim Programmieren nachhaltig aufzulösen.
Projektteam: Maria Micioni, Patrick Schrag, Aron Knezevic
Blogautor: A. Knezevic