Hi x3,
woher ich das alles weiß ?
Also: von 1988 bis 1990 habe ich ein Berufskolleg besucht und dort vieles erfahren. Nach einer kleinen Pause beim olivgrünen Verein habe ich mein Wissen während eines 11-semestrigen Studiums (darunter Praktika bei IBM und Forschungsinstitut) vertieft. Danach folgten 9 Jahre Berufserfahrung bevor ich jetzt Dir antworte.
Willst Du allen ernstes erwarten, daß ich Dir mein ganzes Wissen in einem einzigen Posting weitergeben kann ?
Also hier mal das Wichtigste:
Heap = Arbeitsspeicher
Stack = Speicher, auf dem kurzfristig Variablen, Speicheradressen, Rücksprungadressen etc abgelegt werden.
Stell Dir vor, Du hast in der linken Hand ("Heap") eine Schüssel mit Pudding, in der rechten Hand ("Heap") eine mit Soße. Jetzt willst Du die Tür aufmachen. Also mußt Du eine Hand frei bekommen. Du stellst Schüssel1 auf einen Tisch ("push"-Kommando, Schüssel1 auf dem Stack), stellst Schüssel2 auf den Boden ("push"-Kommando, Schüssel2 auf dem Stack), öffnest die Tür, holst Schüssel2 in die eine Hand ("Heap", "pop"-Kommando, Schüssel2 vom Stack, Schüssel2 muß zuerst kommen, da FIFO), holst Schüssel1 ("Heap", "pop"-Kommando, Schüssel1 vom Stack) und gehst durch die Tür. Jetzt sind wieder beide Schüsseln im hauptspeicher und der Stack ist aufgeräumt. Wenn der Stack jetzt allerdings so klein wäre, daß nur eine Schüssel drauf paßt, wäre bei der zweiten Schüssel ein "Stack overflow" gekommen, weil der Stack plötzlich im Bereich vom Heap wäre.
Such einfach mal nach Tutorials von einfachen Sprachen, wie Pascal, C. Lass die objektorientierten Dinger weg. Je nachdem, wie gut Du bist, kannst Du Teile der Tutorials überspringen (Was ist ein Array, Unterschied zwischen Funktion/Prozedur etc.) Und vergiß ganz schnell zu glauben, jahrelanges Wissen/Erfahrung könnte man sich mit einem Mausklick aneignen.
Gruß
Hans