Sobes.tech
Junior

Heap va stack nima?

sobes.tech AI

AIdan javob

Heap va Stack - bu ikki xotira maydoni bo'lib, dasturlar ma'lumotlarni saqlash uchun ishlatiladi.

  • Stack (pufak) - bu xotira maydoni bo'lib, unda lokal o'zgaruvchilar, funksiyalar parametrlari va qaytish manzillari saqlanadi. U LIFO (so'ng kirgan, birinchi chiqadi) tamoyili bilan ishlaydi. Funksiya chaqirilganda, stackda blok ajratiladi va bajarilishi tugagach, bo'shatiladi. Stack cheklangan o'lchamga ega va avtomatik boshqariladi.

  • Heap (yig'indi) - bu xotira maydoni bo'lib, unda ob'ektlar va ma'lumotlar dinamik tarzda ajratiladi va dastur davomida o'lchami o'zgarishi mumkin. Java'da ob'ektlar heapda yaratiladi, va garbage collector (axlat yig'uvchi) avtomatik ravishda foydalanilmayotgan xotirani bo'shatadi.

Misol:

public void misol() {
    int a = 10; // stackda saqlanadi
    String s = new String("Salom"); // String ob'ekti heapda yaratiladi
}

Bu yerda, a lokal o'zgaruvchi stackda, va String ob'ekti heapda joylashgan.