Heap, Stack, Werte- und Referenztypen // deutsch

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ก.ย. 2024

ความคิดเห็น • 62

  • @alejandronieto576
    @alejandronieto576 4 หลายเดือนก่อน

    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!

  • @timonaumann2617
    @timonaumann2617 2 ปีที่แล้ว +1

    😯 bester Erklärung ever!

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว

      [gr] Danke für das Lob 😊

  • @fanaFSF
    @fanaFSF 6 หลายเดือนก่อน +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  6 หลายเดือนก่อน

      Das freut mich, vielen Dank 😊

  • @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!

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว

      [gr] Vielen, vielen Dank 😊

  • @hermanheinz33
    @hermanheinz33 ปีที่แล้ว

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

  • @PalaBlood.
    @PalaBlood. 10 หลายเดือนก่อน

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

  • @mo7aZa
    @mo7aZa 3 หลายเดือนก่อน

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

  • @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 ☺️

  • @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 😊

  • @michaelrichter9408
    @michaelrichter9408 2 ปีที่แล้ว +2

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

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว

      [gr] Vielen, 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

    • @thenativeweb
      @thenativeweb  ปีที่แล้ว

      [gr] Vielen, vielen Dank 😊

  • @JonasHerbertson
    @JonasHerbertson ปีที่แล้ว +2

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

  • @marmont8005
    @marmont8005 ปีที่แล้ว +1

    Vielen Dank! :)

    • @thenativeweb
      @thenativeweb  ปีที่แล้ว

      [gr] Gern geschehen ☺️

  • @maschinentier4385
    @maschinentier4385 2 ปีที่แล้ว +1

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

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว

      [gr] Vielen lieben Dank 😊

  • @bjornzschernack7653
    @bjornzschernack7653 2 ปีที่แล้ว +2

    Merci :-)

  • @alejandronieto576
    @alejandronieto576 4 หลายเดือนก่อน

    Danke!

  • @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 😊

  • @suchtendolp644
    @suchtendolp644 2 ปีที่แล้ว +1

    Echt gut erklärt, danke dir :)

  • @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.

  • @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 😊

  • @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).

    • @thenativeweb
      @thenativeweb  2 ปีที่แล้ว +1

      [gr] Danke für den Link 😊

  • @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)

  • @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.

  • @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.

  • @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.

  • @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 …)

  • @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.