Heap, Stack, Werte- und Referenztypen // deutsch

Поділитися
Вставка
  • Опубліковано 4 жов 2024

КОМЕНТАРІ • 62

  • @alejandronieto576
    @alejandronieto576 5 місяців тому

    Ich musste mir nur 5 Minuten anschauen um dieses Thank You zu kaufen. Zu jenem Zeitpunkt hattest du schon einen meiner Zweifeln angesprochen. Und ich bin noch nicht mit dem Video fertig.
    Danke aus Argentinien!

  • @fanaFSF
    @fanaFSF 7 місяців тому +1

    Boah, endlich hab ich das verstanden. Hab das schon so oft gegoogled was Stack und Heap ist aber es nie so richtig geschnallt. Danke für das Video, jetzt ist es klar.

    • @thenativeweb
      @thenativeweb  7 місяців тому

      Das freut mich, vielen Dank 😊

  • @xkons
    @xkons 2 роки тому +17

    +1 für garbage collection video 🥳

    • @thenativeweb
      @thenativeweb  2 роки тому +1

      [gr] Alles klar 😊

    • @bsdooby
      @bsdooby 2 роки тому +1

      Unbedingt (evtl. dann auch Vergleich zw. Java, C# ;) )

    • @monfort537
      @monfort537 2 роки тому +1

      Auf jeden Fall +1 Interessant wäre auch wie die garbage collection in node beeinflusst werden kann. Und welche Fehler dazu führen, dass bestimmte Dinge vielleicht gar nicht beseitigt werden.

    • @nicolausriebl8026
      @nicolausriebl8026 2 роки тому +1

      +1 auch von mir, fände ich spannend :)
      Und Danke für das Video!

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Danke ☺️

  • @yt7042
    @yt7042 2 роки тому +7

    Wie immer, super erklärt. Einfach unglaublich was man von dir alles lernen kann. Ich liebe es die Basics zu verstehen, da man dann ganz anders an die Sache ran geht. Weiter so!

  • @lno7504
    @lno7504 Рік тому +2

    Du bist einfach nur der Wahnsinn! Ich bin gerade dabei den AG zu wechseln und deine anschaulichen Erklärungen geben mir so viel Sicherheit in den Bewerbungsgesprächen. Ich bin einfach nur begeistert! Danke für Alles!

    • @thenativeweb
      @thenativeweb  Рік тому +1

      [gr] Wow, das freut mich - vielen Dank 😊

  • @zn8jt
    @zn8jt Рік тому +2

    Mache selber Schulungen und Dein Vortrag ist einfach nur der Hammer. Vielen Dank dafür! Glasklar erklärt mit einem Minimum an Präsentation. Das muss man erstmal hinbekommen! Abo + Like

  • @hermanheinz33
    @hermanheinz33 Рік тому

    Mein bester...wieder einmal ein wunderbares Video! Weiter so

  • @michaelrichter9408
    @michaelrichter9408 2 роки тому +2

    Wie üblich wurde wieder das wesentliche eines Themas super verständlich vermittelt. Gerne mehr.
    Vielen Dank Golo.

  • @PalaBlood.
    @PalaBlood. 10 місяців тому

    Danke 🙏 das war mega hilfreich und sehr gut erklärt

  • @timonaumann2617
    @timonaumann2617 2 роки тому +1

    😯 bester Erklärung ever!

  • @JonasHerbertson
    @JonasHerbertson Рік тому +2

    Sehr cool, richtig gut und verständlich erklärt! Danke!

  • @mo7aZa
    @mo7aZa 4 місяці тому

    sehr schönes video und super erklärt!!

  • @maschinentier4385
    @maschinentier4385 2 роки тому +1

    Vielen Dank für das super verständliche Video!

  • @rautermann
    @rautermann 2 роки тому +1

    Golo, deine Videos sind so toll! Ausführlich, gut verständlich, super professionell (One-Take-Wonder!) und dabei noch sehr sympathisch. Bin ein absoluter Fan - und deine Videos helfen mir persönlich nicht nur beim Verständnis vieler Dinge, sondern auch dabei, als Autodidakt herauszufinden, wie man auf Deutsch über Coding-Themen spricht... Ich bin diesbezüglich immer total unsicher, da ich nur im Internet lerne und die meisten guten Ressourcen auf Englisch sind.

    • @thenativeweb
      @thenativeweb  2 роки тому +1

      [gr] Wow, das ist toll, vielen, vielen Dank 😊
      Es freut mich, dass Dir die Videos so gut gefallen, und ich hoffe, dass noch viele spannende und interessante Themen für Dich dabei sind 😊

  • @tabasher
    @tabasher 2 роки тому +2

    Ich studiere Informatik im 1. Semster und muss zugeben, dass ich deine Videos sehr gut und verständlich erklärt finde, vielen Dank.
    !! Eine Bitte habe ich an Sie, können SIe ein Video zu Refenzen machen?, Danke im Voraus !!

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Danke schön 😊
      Den Vorschlag nehmen wir gerne auf unsere Themenliste.

  • @marmont8005
    @marmont8005 Рік тому +1

    Vielen Dank! :)

  • @suchtendolp644
    @suchtendolp644 2 роки тому +1

    Echt gut erklärt, danke dir :)

  • @bjornzschernack7653
    @bjornzschernack7653 2 роки тому +2

    Merci :-)

  • @alejandronieto576
    @alejandronieto576 5 місяців тому

    Danke!

  • @Baldur1975
    @Baldur1975 2 роки тому +1

    7Aha! Ich denke jetzt habe ich endlich begriffen warum konstanten schneller als Zeiger sind.
    (sorry unstudiert und seit CPC464 selbst durchgeboxt 😂)

  • @bsdooby
    @bsdooby 2 роки тому +1

    Tcl war eine der ersten Programmiersprachen, die Events anstatt Threads für die nebenläufige Programmierung "promoted" hat. Siehe dazu das Dokument "Why Threads Are A Bad Idea (for most purposes)" von John Ousterhout (dem Erfinder von Tcl).

  • @m0ZZaik
    @m0ZZaik 2 роки тому +1

    Super Video und endlich mal eine brauchbare Definition von primitives anhand einer fixen Speicherallokation. Oft begegnet mir da eher das relativ nichtssagende "repräsentiert einen Wert".
    Ich hätte beim Thema Stack/Heap mal eine JS-spezifische Frage: Wie werden diese beiden Speicherstrukturen bei der Umsetzung von Closures gehandhabt? Werden die lokalen Variablen der äußeren Funktion im Heap hinterlegt und die innere Funktion erhält beim Aufruf, bzw. bei der erzeugung ihres Stackframes Referenzen auf diese? Irgendwie muss der Entstehungskontext ja gespeichert werden, auch wenn der Frame der äußeren Funktion nicht mehr existiert

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Vielen Dank für das Lob und das tolle Feedback 😊
      Und was Deine Frage angeht - das ist eine echt gute Frage, die ich Dir ehrlich gesagt auch nicht beantworten kann, da ich das selbst nicht weiß. Ich würde vermuten, dass es so oder so ähnlich läuft, wie Du beschrieben hast, aber tatsächlich kann ich da nur raten … tut mir leid 😞
      (Wahrscheinlich ist es sogar abhängig von der Implementierung der JS-Runtime, ich könnte mir gut vorstellen, dass es da verschiedene Ansätze gibt)

  • @0xb0110
    @0xb0110 Рік тому +1

    Perfekte Erklärung aber habe noch eine Frage: Bei 10:17 sagst du, dass auch Funktionen auf dem Heap abgelegt werden. War das ein Sprechfehler? Weil wenn ich das richtig verstanden habe, werden Funktionen doch immer auf dem Stack abgelegt, weil sie eine "feste Größe" haben.

    • @thenativeweb
      @thenativeweb  Рік тому +1

      [gr] Erst einmal vielen Dank für das Lob 😊
      Zu Deiner Frage: Funktionen sind tatsächlich Referenztypen, denn natürlich hat jede Funktion für sich eine feste Größe, aber vergleicht man mehrere Funktionen, sind diese natürlich in der Regel unterschiedlich groß. Und wenn Du nun zum Beispiel eine Variable deklarierst, die eine Funktion aufnehmen soll - wie viel Platz sollte man für die im Speicher reservieren?
      Genau: Das lässt sich nicht so pauschal sagen (genauso wenig wie bei einem Array oder einem Objekt), und deshalb landen auch Funktionen auf dem Heap, und die Variable enthält nicht die Funktion, sondern lediglich den Pointer auf den Heap - und damit sind Funktionen eben auch Referenztypen 😊

  • @BinGanzLieb
    @BinGanzLieb 2 роки тому +2

    Ich bin dir sehr sehr dankbar Ich bin Embedded C/C++ Entwickler und mir war der Unterschied zwischen Heap und Stack irgendwie nicht ganz klar. Ich muss es mir nochmal anhören

    • @thenativeweb
      @thenativeweb  2 роки тому +2

      [gr] Das freut mich sehr, vielen Dank 😊

    • @BinGanzLieb
      @BinGanzLieb 2 роки тому +1

      @@thenativeweb Liegen die veränderbaren Datentypen wie Objekte, Arrays, Listen und Vektoren auch im Heap, wenn ich sie mit einer festen Größe und ohne den New Operator initialisiere?

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Das hängt, würde ich sagen, von der verwendeten Programmiersprache ab. Wenn Du die Frage in Bezug auf C/C++ meinst, muss ich leider passen - damit kenne ich mich zu wenig aus.

  • @S3R43o3
    @S3R43o3 2 роки тому +1

    Sag mal Golo hast du schonmal darüber nachgedacht das Tatsächlich professionell zu machen? So als Dozent an einer Uni. Ich finde es faszinierend wie du Dinge erklärst ich klebe förmlich an deinen Lippen. Echt sehr sehr gut ich wünsche meine Lehrer damals hätten die Art und Weise des Wissensvermittelns beherscht. Nochmal ein dickes dickes Danke für den Content. Ich bin selbst eigentlich Fahrzeuglackierer. Falsche Berufsberatung. Bringe mir zurzeit alles selbst bei und kann mitlerweile doch schon sagen das ich denke nun schon etwas fortgeschritten in Sachen Coding zu sein.(ich hab aber null Refferenzen das ist jetzt mal so ins blaue getippt, vermutlich bin ich auch nur furchtbar .. keine Ahung) Ich hab schon mit 7 an nem c64 rumgetippt und das erste Prince of Persia gezockt wenn du das vielleicht noch kennst auf Floppy. Mein Ziel ist es beruflich nun auch iwie in der IT anzukommen. Deine/Eure Videos helfen ungemein dabei sich Wissen drauf zupacken zu dem man sonst nur Zugriff hätte wenn man das ganze studieren würde.
    Nochmal tausend Dank. Weiter so!

    • @thenativeweb
      @thenativeweb  2 роки тому +1

      [gr] Zuerst einmal vielen, vielen Dank für das tolle Feedback und das Lob, das freut uns sehr (der Kanal bin ja nicht nur ich, auch wenn ich primär derjenige bin, der vor der Kamera zu sehen ist) 😊
      Prince of Persia hat mir mein Opa geschenkt, das muss so 1991/1992 gewesen sein, unter MS-DOS. Habe ich rauf und runter gespielt und spiele es heute noch liebend gerne, sei es im DOS-Emulator oder Projekte wie princejs.com/
      Was Deine Frage angeht: Ja, und ich habe in der Vergangenheit sogar schon Vorlesungen gehalten, an verschiedenen Hochschulen in der Schweiz und in Deutschland. Aber, ich habe feststellen müssen, es ist unterm Strich nicht meins. Und beruflich mache ich das ja im Prinzip auch (auch wenn nicht an Hochschulen), als Berater und Trainer.
      Und Dir zu guter letzt noch viel Erfolg und Freude auf Deinem Weg 🍀

    • @S3R43o3
      @S3R43o3 2 роки тому +1

      @@thenativeweb Vielen Dank für die Antwort =) Okay damit ist ein Lehrertalent vom Markt =D Vielen Dank für die Glückwünsche euch natürlich auch.

  • @orange-vlcybpd2
    @orange-vlcybpd2 2 роки тому +1

    Zwei Gangster sind Golo in der dunklen Gasse begegnet. Und unverhofft einen Bachelor Abschluss in Informatik bekommen. ;)

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Hahaha 😊
      (Trotzdem hoffe ich, dass es bei einem Gedankenspiel bleibt …)

  • @huydang6059
    @huydang6059 2 роки тому +1

    was bedeutet das RAM fragmentiert kurz oder lang

    • @thenativeweb
      @thenativeweb  2 роки тому +1

      [gr] Das bedeutet, dass sich das RAM nicht mehr in zwei Bereiche gliedert (einen, der belegt ist, einen der frei ist), sondern in ganz viele kleine, wo sich belegte und freie Bereiche abwechseln.
      Du hast also bei 4 GByte nicht 2 belegt und 2 frei, sondern 10 MByte belegt, dann 3 frei, dann 25 belegt, dann 17 frei, … das kommt in Summe zwar vielleicht auch auf 2 GByte belegt und 2 GByte frei hinaus, ist aber viel stärker verstreut. Diesen Effekt nennt man "Fragmentierung".
      Das kannst Du Dir vorstellen wie eine Straße mit Parkplätzen: Angenommen, Du hast 10 Parkplätze, und von denen sind die ersten fünf belegt, dann sind die hinteren fünf frei. Kommt nun ein LKW, der einen Anhänger mit einem Segelboot darauf zieht, kann auch der problemlos dort parken, auch wenn er dafür drei Parkplätze benötigt.
      Parken die Autos statt dessen jeweils mit einem Platz dazwischen frei, dann sind auch von den 10 Plätzen fünf belegt und fünf frei, aber der LKW passt nicht mehr rein, weil es keine Parklücke gibt, die lang genug wäre, auch wenn insgesamt theoretisch genug Platz zur Verfügung steht.
      Genau das gleiche passiert auch im Speicher. Und dann hilft nur regelmäßig aufräumen und den belegten Platz wieder "zusammenschieben" (quasi die Autos umparken). Einige Sprachen machen das von Zeit zu Zeit eigenständig, und das nennt man dann "Garbage Collection".
      Hope that helps 😊

    • @huydang6059
      @huydang6059 2 роки тому +1

      @@thenativeweb Hat auf jeden Fall geholfen. Danke für die schnelle Antwort.

  • @devchannel5232
    @devchannel5232 2 роки тому +1

    10:27 Woher weiß das Betriebssystem, ob er den Wert auf dem Stack als beispielsweise Zahl oder Referenz interpretieren soll?

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Tatsächlich weiß er das nicht, sondern das obliegt der Interpretation durch die Anwendung.

    • @VoidiYT
      @VoidiYT 2 роки тому +1

      ganz genau genommen dem Programmierer bzw. haben Sprachen dafür Konventionen an die man sich halten sollte bzw. muss.
      Wenn ich mich an meine alten Kenntnisse von C richtig erinnere ist Zeiger ein eigener Typ:
      ObjectTyp* zeiger;
      Wenn er einfach nur zeiger schreibt kann der programmierer dann mit der Variable (die die Adresse enthält) aber wie mit einer 'normalen' Stack variable arbeiten, Adresse erhöhen z.B.

    • @thenativeweb
      @thenativeweb  2 роки тому

      [gr] Stimmt 😊

  • @kreuzrose33
    @kreuzrose33 7 місяців тому

    Was mir leider generell bei deinen Videos missfällt: Du erklärst es nicht für den Leien. Der der bei deinen Erklärungen nachkommt, weiss es bereits schon vorher. Und der der nichts davon weiss, kommt nicht nach, da zu kompliziert erklärt. Not offence meant. Lediglich als Feedback.