Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ მეხსიერების მართვაში სტეკისა და ჰეპის განსხვავება?

sobes.tech AI

პასუხი AI-სგან

স্ট্যাক এবং হিপ হল C# এবং অন্যান্য ভাষাগুলিতে স্মৃতি ব্যবস্থাপনার দুটি আলাদা পদ্ধতি।

স্ট্যাক হল একটি স্মৃতি এলাকা যেখানে স্থানীয় পরিবর্তনশীল এবং ফাংশন কলগুলি সংরক্ষিত হয়। এটি LIFO (শেষে প্রবেশ, প্রথমে বেরিয়ে) নীতির উপর কাজ করে। স্ট্যাকে স্মৃতি খুব দ্রুত বরাদ্দ এবং স্বয়ংক্রিয়ভাবে ফাংশনে প্রবেশ এবং প্রস্থান করার সময় মুক্ত হয়। তবে, স্ট্যাকের আকার সীমিত এবং এটি কেবল নির্দিষ্ট আকারের ডেটা সংরক্ষণ করে।

হিপ (heap) হল একটি স্মৃতি এলাকা যেখানে ডাইনামিকভাবে অবজেক্ট বরাদ্দ করা হয়, যেমন ক্লাসের ইনস্ট্যান্স। হিপে স্মৃতি ম্যানুয়ালি বরাদ্দ (new অপারেটর দিয়ে) হয় এবং গার্বেজ কালেক্টর (GC) দ্বারা পরিচালিত হয়। হিপে পরিবর্তনশীল আকারের অবজেক্ট এবং আরও জটিল কাঠামো সংরক্ষণ করতে দেয়, তবে এখানে স্মৃতি বরাদ্দ এবং মুক্তি ধীর হয়।

উদাহরণ:

int x = 10; // পরিবর্তনশীল x স্ট্যাকে সংরক্ষিত
MyClass obj = new MyClass(); // অবজেক্ট হিপে তৈরি হয়, রেফারেন্স obj স্ট্যাকে সংরক্ষিত

অতএব, স্ট্যাক দ্রুত, অস্থায়ী ডেটার জন্য, এবং হিপ দীর্ঘস্থায়ী অবজেক্টের জন্য।