Vl 8 - Rekursion und Strings Flashcards
Was ist der Aufrufstack?
Speichert zur Laufzeit Informationen über die gerade aktiven Methoden in Stackframes
Bei Methodenaufruf werden die Rücksprungadresse und die lokalen Variablen in einem neuen Stackframe auf dem Stack gespeichert
Was ist ein Stackframe?
Ein Block auf dem Aufrufstack (Ein Methodenaufruf)
Prinzip und Nachteil von rekursiven Methoden
in kleinere Probleme zerlegen
- hoher und ineffizienter Speicheraufwand
Was befindet sich im Heap?
Alle dynamischen Variablen und Objekte während einer Laufzeit
Was befindet sich im Stack?
Parameterübergaben, lokale Variablen einzelner Funktionen
Rücksprungadressen
Aufbau Speichereinteilung beim Programm
(5 Komponenten)
Vorgehen Garbage Collector?
Beobachtet regelmäßig die Referenzen auf dem Stack
- Von da aus wird transitiv das gesamte Objektgeflecht durchgeschaut und erreichbare Objekte werden markiert
- Anschließend werden alle nicht markierten Objekte im Heap gelöscht
Was ist ein String?
Zeichenkette - Folge von einzelnen Zeichen
Sind String Objekte unveränderlich?
ja! es wird immer ein neues Objekt erzeugt
Wie prüfe ich die Gleichheit von Strings?
s.equals(“…”) -> true false
nicht ==
<bezeichner> als regulären Audruck schreiben</bezeichner>
[a-zA-Z_][a-zA-Z_0-9]*
min einkleiner Buchstabe am anfang gefolgt von 1 oder mehr Buchstaben Unterstrichen oder Zahlen