Stack und Heap - die Unterschiede!

chrilux

Mitglied
Im Ineternet kursieren viele Erklärungen vom Stack und Heap...

Aber alle sind für mich sehr schwierig zu verstehen...

Hat einer von Euch eine signifikat einfache Erkärung für die Unterschiede von Stack und Heap?
 

turtle

Top Contributor
Stack ist eine Datenstruktur um Elemente zu speichern und nur in umgekehrter Reihenfolge wieder ausgelesen werden können (LIFO-Prinzp, Last-In-First-Out). Daher heißen die beiden Operationen auf einem Stack meistens Push und Pop.

Ein Heap (Halde) ist ebenfalls eine Datenstruktur um Elemente zu speichern. Hier gibt es aber keine "vorgeschriebene" Zugriffsart. Daher heißen die Funktionen hier meistens insert und remove. Also KANN ein Heap entscheiden, wie die Elemente möglichst effektiv gespeichert werden, häufig in Form von Bäumen.
 

chrilux

Mitglied
Das ist mal eine Aussage.. :)

Beides Datenstrukturen also, die sich einfach in der Art und Weise unterscheiden, wie sie wieder ausgegeben werden?

zB. was passiert bei String s1 = "Hallo"; ?

Wäre dann s1 auf dem Stack und "Hallo" im Heap?
 

turtle

Top Contributor
Wäre dann s1 auf dem Stack und "Hallo" im Heap?

Das kommt drauf an, wie du alles definierst.

Beide Objekte sind (üblicherweise) im Heap, es sei denn...

Lokale Variable dagegen, beispielsweise einer Methode, landen auf dem Stack.
 

Neue Themen


Oben