Heap, Stack, GC grob

Beginner Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Lokale Variablen und Aufrufketten liegen auf dem Thread-Stack. Objekte liegen auf dem Heap und werden vom Garbage Collector freigegeben, wenn sie unerreichbar sind.

StackOverflowError: zu tiefe Aufrufe. OutOfMemoryError: Heap voll.

Wo gebraucht

Allokationsdruck, Escape Analysis, GC-Pausen als Latenzursache. Stack Frames erklären Rekursionlimits; Heap erklärt Objektgraphen und Leaks.

Vertiefung

Jeder Thread verwaltet Aufrufrahmen mit lokalen Variablen und Rücksprunginformationen auf seinem Stack. Objekte werden typischerweise in einem gemeinsam verwalteten Speicherbereich angelegt; lokale Referenzen können auf diese Objekte zeigen. Eine lokale Variable macht das referenzierte Objekt daher nicht automatisch threadlokal.

Der Garbage Collector findet Objekte, die von Wurzeln wie aktiven Stacks und statischen Feldern nicht mehr erreichbar sind. Er entscheidet über Speicherfreigabe, nicht über das rechtzeitige Schliessen externer Ressourcen. Dateien und Sockets benötigen deshalb explizite Lebensdauersteuerung.

Schwierigkeitsstufen

  1. Lokale Referenz und referenziertes Objekt unterscheiden.
  2. Erreichbarkeit von GC-Wurzeln aus verfolgen.
  3. Speicherbereinigung und Ressourcenfreigabe trennen.

Fallstricke

Ein Objekt wird nicht gesammelt, nur weil eine einzelne Referenz den Gültigkeitsbereich verlässt. Solange ein anderer erreichbarer Pfad existiert, bleibt es lebendig. System.gc ist ausserdem keine verlässliche Freigabegarantie.

University approvals: 0
Tasks
Question 1

Wo liegen Java-Objekte typischerweise?

Question 2

Eine lokale Variable referenziert ein Objekt, das zusätzlich in einem statischen Feld liegt. Was geschieht beim Methodenende?

Question 3

Lege ein int-Array der Länge n an und gib seine Länge zurück.

Hint

Ein Ganzzahlarray wird mit new int[n] angelegt. Seine Länge steht im Feld .length, nicht in einer Methode.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Beginner
  • Completed: 0 users
Creator
Best
Best
BestBuddy