Що таке heap і stack пам’ять в java, програмування на java, android

У Java є такі поняття як Heap і Stack пам'ять. Сьогодні ми дізнаємося різницю між ними і навіщо вони потрібні. Як завжди, спочатку в теорії і потім на практиці розберемо цю складну тему.

Java Heap пам'ять

Java Heap (купа) використовується Java Runtime для виділення пам'яті під об'єкти і JRE класи. Створення нового об'єкта також відбувається в купі. Тут працює збирач сміття: звільняє пам'ять шляхом видалення об'єктів, на які немає жодних посилань. Будь-який об'єкт, створений в купі, має глобальний доступ і на нього можуть посилатися з будь-якої частини програми.

Stack пам'ять в Java

Стекова пам'ять в Java працює за схемою LIFO (Останній-зайшов-Перший-вийшов). Всякий раз, коли викликається метод, в пам'яті стека створюється новий блок, який містить примітиви і посилання на інші об'єкти в методі. Як тільки метод закінчує роботу, блок також перестає використовуватися, тим самим надаючи доступ для наступного методу.
Розмір стековой пам'яті набагато менше обсягу пам'яті в купі.

Давайте розглянемо відмінності стековой пам'яті і купи на прикладі простої програми.

На зображенні нижче представлена ​​пам'ять стека і купи для програми вище

Що таке heap і stack пам'ять в java, програмування на java, android

А тепер розглянемо кроки виконання нашої програми:

Різниця між Stack і Heap пам'яттю в Java

На підставі наведених вище пояснень, ми можемо легко підсумувати наступні відмінності між Heap і Stack пам'яттю в Java.

Ось і все, що потрібно знати про Stack і Heap пам'яті в Java. Слідкуйте за оновленнями в розділі Корисне.

Більше корисних статей!

  • Що таке heap і stack пам'ять в java, програмування на java, android
    Сортування масиву в Java
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Приклад сортування за допомогою Java Comparable і Comparator
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Робота з класом Java System (java.lang.System)
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Оператор continue в циклі for, Java
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Пишемо стек на java
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Перерахування в Java. Переваги використання Enum
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Як створити і ініціалізувати List в один рядок на Java
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Клонування об'єктів в Java. Приклад використання методу clone ()
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Як працює статична типізація в Java
  • Що таке heap і stack пам'ять в java, програмування на java, android
    Двовимірні масиви в Java