რა არის heap და stack?
sobes.tech AI
პასუხი AI-სგან
Heap და Stack ორი მეხსიერების ტერიტორიაა, რომლებიც პროგრამები მონაცემების შენახვაში იყენებენ.
-
Stack (სტეკი) — ეს მეხსიერების ტერიტორიაა, სადაც ინახება ადგილობრივი ცვლადები, ფუნქციების პარამეტრები და დაბრუნების მისამართები. იგი მუშაობს LIFO (ბოლოს შევიდა, პირველმა გამოვიდა) პრინციპით. როდესაც ფუნქცია იძახება, მისთვის გამოყოფილი ბლოკი სტეკზე, ხოლო დასრულების შემდეგ, ის გათავისუფლებულია. სტეკს აქვს შეზღუდული ზომა და ავტომატურად მართვადია.
-
Heap (ჰიპი) — ეს მეხსიერების ტერიტორიაა, სადაც დინამიურად განაწილდება ობიექტები და მონაცემები, რომლის ზომაც შეიძლება შეიცვალოს პროგრამის შესრულების დროს. Java-ში ობიექტები ჰიპზე იქმნება, ხოლო გარბიჯი ავტომატურად ანთავისუფლებს არასაჭირო მეხსიერებას.
მაგალითი:
public void მაგალითი() {
int a = 10; // შენახულია ჰიპზე
String s = new String("გამარჯობა"); // String ობიექტი ჰიპზე იქმნება
}
აქ a — ადგილობრივი ცვლადია ჰიპზე, ხოლო String ობიექტი — ჰიპზე.