C# Стек и Куча | Stack and Heap | Часть 1

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

КОМЕНТАРІ • 61

  • @codaza-channel
    @codaza-channel  3 роки тому +12

    Удобная навигация по видео :)
    0:00 - Начало
    1:02 - Разделение памяти
    1:38 - Стек
    2:24 - Типы данных сохраняемые на стеке
    3:40 - Куча
    5:10 - Типы данных сохраняемые в куче
    6:12 - Пример работы стека
    7:58 - Пример совместной работы стека и кучи
    10:25 - Завершение

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

      Ролик классный, но есть маленький но очень бесячий минус. Музыка, она ну очень громкая

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

      Heap стоило представить ввиде бинарного дерева

  • @ОльгаВасильева-е5у

    Убирайте музыку, пожалуйста. Качество звука тоже желательно улучшить. Музыка сильно мешает слушать звук с басами

  • @roflin4ik
    @roflin4ik 3 роки тому +2

    Спасибо за информацию. Но мне кажется, для объяснения такой важный темы, музыка здесь лишняя)

    • @codaza-channel
      @codaza-channel  3 роки тому +2

      Спасибо за обратную связь. В более поздних роликах музыка тише, а голос громче :) В этом ролике она действительно излишне громкая.

    • @roflin4ik
      @roflin4ik 3 роки тому +2

      @@codaza-channel да, я уже приступил к изучению второй части темы и заметил разницу). Спасибо за уроки!

  • @ЯнаГончарова-ф5с
    @ЯнаГончарова-ф5с 3 роки тому +24

    Отличное объяснение! Когда читала про тему, ссылочные типы вообще не понимала. Сейчас гораздо лучше! Жду вторую часть. Автору спасибо!

    • @codaza-channel
      @codaza-channel  3 роки тому +5

      Рад, что информация была полезной 🙂

  • @AlexAlex-ms3bg
    @AlexAlex-ms3bg Рік тому +3

    а сложно фоновую музыку убрать?

  • @abugsbunny
    @abugsbunny 18 днів тому

    Парень. ты крутой. жаль что забросил канал. Лучшие видео в ру области

  • @timur2887
    @timur2887 2 роки тому +4

    Спасибо за видео! Небольшое уточнение относительно размещения объектов в куче: насколько я помню, на куче отдельно размещается область класса (объект), где содержатся все статичные поля, таблица виртуальных методов и тп, и отдельно - экземпляры, в которых, например, содержатся поля данных. то есть для каждого класса будет некоторая статичная область выделена, а так же области под экземпляры. На примере из видео, для класса Rocket на стеке во фрейме CreateRocket будет выделено место под ссылочную переменную, указывающую на экземпляр в куче, который в свою очередь имеет ссылку на класс (объект). Поправьте, если не прав.

    • @codaza-channel
      @codaza-channel  2 роки тому

      Да, всё верно. На стеке хранится ссылка, которая указывает на объект расположенный в куче.

  • @lenitube
    @lenitube 6 місяців тому

    Спасибо за видео, но музыка - ужас, мало того что голос басит, так ещё и его еле слышно из за музыки.

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

    А вот и не немедленно. Автор почитай что-нибудь про поколения объектов.

  • @alinanur5628
    @alinanur5628 3 роки тому +4

    Спасибо!

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

    Миллион видео пересмотрел чтобы понять где хранятся составные члены ссылочного типа, только тут автор объяснил, спасибо.

  • @romanfersion6006
    @romanfersion6006 3 роки тому +4

    Большое спасибо

  • @nokia_n-gage
    @nokia_n-gage 2 роки тому +3

    Спасибо!

  • @Фредди-й5п
    @Фредди-й5п 10 місяців тому +1

    Большое Спасибо!! Вы единственный человек который помог мне понять эту тему визуально,спасибо за старания! За то что показали как работает оперативная память на примерах и в визуальном образе благодарю вас! Очень жалко что такой крутой канал заброшен. Надеюсь что у автора на данный момент все хорошо спасибо за помощь!

  • @daredevil3d629
    @daredevil3d629 2 роки тому +3

    Круто, автор не останавливайся!)

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

    Ля, как же круто объясняешь, спасибо

  • @mar_kha
    @mar_kha 2 роки тому +3

    Спасибо за инфографику!

  • @alex.artechtattoo
    @alex.artechtattoo 2 роки тому +1

    Повторение- мать учения! Особенно когда понятно и доступно изложено. Благодарность автору и однозначная подписка

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

    Благодарю, визуализация приятная

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

    Ну не будет объект удалён немедленно

    • @codaza-channel
      @codaza-channel  2 роки тому

      Почему Вы так считаете?

    • @47fps3
      @47fps3 2 роки тому +3

      @@codaza-channel Прочитайте в документации. Он вызывается если мы вызвали Collect, если заканчивается память или выделенная память превышает допустимый порог

    • @codaza-channel
      @codaza-channel  2 роки тому +3

      Благодарю за подробное уточнение. Я перепроверил официальную документацию на сайте Microsoft, это действительно так. Оставлю ссылку на документ, на случай, если кому то из гостей канала потребуется информация из первоисточника: docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals?redirectedfrom=MSDN#conditions_for_a_garbage_collection

  • @РусланКоц-х3к
    @РусланКоц-х3к 3 роки тому +3

    Отлично, ждем 2 часть

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

    спасибо за видео! развивай канал!

  • @essentia9
    @essentia9 2 місяці тому

    За столь хорошее объяснение можно закрыть глаза на музыку. Спасибо большое

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

    супер

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

    Thanks)

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

    Большое спасибо за объяснение, очень доступно и понятно. Особенно порадовало объяснение того, что ссылочный тип находится в куче, если он часть объекта. Всегда сыпался на этом вопросе на собесах, так как было непонятно.

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

    Очень классно! Хотел освежить память :)

  • @ФедорАргунов-р3я

    Добавить ещё анимацию, то было бы ещё лучше)

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

    Спасибо вам, очень понятно обясняете

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

    круто!!!!!

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

    Это божественно!

  • @ВячеславДудка-к2м
    @ВячеславДудка-к2м 2 роки тому +5

    Спасибо за контент! Только 2 маленьких уточнения:
    - Стек находится не в оперативной памяти, а в реестровой памяти процессора
    - Гарбедж коллектор не сразу же удалит объект из кучи если на него нету больше ссылки, а когда наполниться поколение и не будет места для новых объектов (разве что принудительно вызовем GC.Collect() method)

    • @codaza-channel
      @codaza-channel  2 роки тому +1

      Рад, что ролик оказался полезным. Благодарю за важные уточнения! 💙

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

      Так, погоди
      Стек расположен ведь именно в оперативке
      Так везде пишут

    • @ВячеславДудка-к2м
      @ВячеславДудка-к2м Рік тому

      @@misha2993 Значит везде ошибаются
      Стек один на поток как раз и потому, что сам поток идет от процессора и чтобы работал так же быстро и память выделяется тут же в регистре процессора

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

      На канале, где я учусь, а именно у Alek OS, есть видео, где он говорит про стек. И по его словам, он находится в оперативной памяти
      Также в гугле нашёл доп. инфу про стек регистра процессора и вот то, что там на писано:
      Стек всегда находится в оперативной памяти. Существует указатель стека, который хранится в регистре процессора, указывающем на вершину стека, то есть на адрес местоположения в верхней части стека.

    • @ВячеславДудка-к2м
      @ВячеславДудка-к2м Рік тому +1

      @@misha2993 там все скомкано и подано вразброс
      Сам СТЕК (ячейки памяти последовательности действий) находится в процессоре, а вот значения ссылочных типов - в оперативке, в стеке только ссылки на них