Java أو Japan Anti-Vivisection Association هي لغة برمجة عالية المستوى تستخدم للأغراض العامة ولغة البرمجة عبر الأنظمة الأساسية.
في Java ، تتم إدارة إدارة الذاكرة تلقائيًا. يقسم ذاكرته إلى ذاكرة مكدس وذاكرة كومة.
الوجبات السريعة الرئيسية
- يتم استخدام Stack لتخصيص الذاكرة الثابتة ، بينما يستخدم Heap لتخصيص الذاكرة الديناميكية.
- ذاكرة المكدس محدودة ، بينما ذاكرة الكومة ليست كذلك.
- تعد ذاكرة المكدس أسرع في الوصول إليها من ذاكرة الكومة.
كومة مقابل كومة
الفرق بين ذاكرة المكدس وذاكرة الكومة هو أن بنية بيانات المكدس خطية، بينما بنية بيانات الكومة هرمية. يتم تخصيص ذاكرة المكدس في كتلة متجاورة. ومن ناحية أخرى، يتم تخصيص ذاكرة الكومة بترتيب عشوائي. لا يمكن تغيير حجم متغيرات المكدس، بينما يمكن تغيير حجم متغيرات الكومة.
يتم تخصيص ذاكرة المكدس في كتلة الذاكرة المتجاورة. لا يهتم المبرمجون بالذاكرة لتخصيص متغيرات المكدس ونقلها.
بالنسبة للمتغيرات العامة، تعمل الكومة كمخزن مؤقت يتم فيه حفظ لغات البرمجة. بشكل افتراضي، في مساحة ذاكرة الكومة، يتم تخزين كافة متغيرات الكرة الأرضية.
جدول المقارنة
معلمات المقارنة | كومة | كومة |
---|---|---|
ترجمة | في الذاكرة ، هو هيكل خطي حيث يتم تخزين المعلومات بالتسلسل. | في الذاكرة ، يوجد تخصيص ديناميكي حيث يتم تخزين جميع البيانات بشكل عشوائي. |
تخصيص الذاكرة | في كتلة مستمرة | بترتيب عشوائي |
سرعة | أسرع | أبطأ |
هيكل البيانات | خطي | غير خطي (هرمي) |
المقاس | ثابت | من الممكن تغيير الحجم |
ما هو ستاك؟
في أجهزة الكمبيوتر المعاصرة، يحتوي كل خيط على منطقة من الذاكرة محجوزة تسمى المكدس الخاص به. عند تنفيذ الدالة، قد يتم إضافة بعض بيانات الحالة المحلية الخاصة بها إلى أعلى المكدس.
المكدس مفيد لتخزين المتغيرات المحلية للوظائف النشطة حاليًا. يفضل المبرمجون المكدس لتخزين البيانات المحلية ذات الطول المتغير.
تسمح آليات الذاكرة المكدسة لذاكرة النظام بالعمل كمخزن مؤقت للبيانات وتتصرف مثل المخزن المؤقت لأول من يخرج أخيرًا.
تتمثل بعض مزايا المكدس في التنظيف التلقائي للكائن، وعدم إمكانية إتلاف الذاكرة بسهولة، ودور كبير في تخصيص الذاكرة وإلغاء تخصيصها.
ما هو الكومة؟
عندما يقوم المبرمجون بتنفيذ التعليمات، يتم تخصيص ذاكرة الكومة فقط. يُطلق على هذا النوع من الذاكرة اسم الكومة نظرًا لتوفر مساحة ذاكرة في الكومة للتخصيص وإلغاء التخصيص.
يمكن تقسيم تخصيص ذاكرة الكومة إلى:
- الجيل الشاب - في هذه المنطقة من الذاكرة، تخصص جميع الكائنات أو البيانات الجديدة المساحة. في حالة امتلاء الذاكرة، يساعد جمع البيانات المهملة على تخزين بقية البيانات.
- الجيل القديم أو الثابت - في هذه المنطقة، يتم تخزين كائنات البيانات القديمة التي لا يتم استخدامها أو لا يتم استخدامها على الإطلاق.
- التوليد الدائم- تتكون هذه المنطقة من بيانات تعريف JVM لطرق التطبيق وفئات وقت التشغيل.
هناك العديد من المزايا أو المزايا لاستخدام ذاكرة الكومة، مثل المتغيرات التي يمكن الوصول إليها عالميًا، وعدم وجود حد لحجم الذاكرة، والطريقة المستخدمة في قائمة انتظار الأولوية، وتشغيل جمع البيانات المهملة.
الاختلافات الرئيسية بين Stack و Heap
- تعد ذاكرة المكدس مفيدة في تخزين استدعاءات الوظائف والمتغيرات المحلية. لكن ذاكرة الكومة مفيدة لتخزين الكائنات في Java.
- في الأكوام، تكون المتغيرات المخزنة مرئية لسلسلة المالك، أو في Java، فهي نوع من الذاكرة الخاصة. على الجانب الآخر، في كائنات الكومة، التي تم إنشاؤها مرئية لجميع سلاسل الرسائل أو بين جميع سلاسل الرسائل، تتم مشاركة ذاكرة الكومة.
أنا آسف، لكن لهجة هذا النص تبدو متعالية بعض الشيء. يمكن أن يكون أفضل قليلاً في هذا الجانب.
تعد إدارة ذاكرة Java موضوعًا معقدًا، لكنك تمكنت من شرحه بوضوح شديد. تهاني!
لم أر قط مثل هذا الشرح الواضح والمنظم جيدًا لإدارة ذاكرة Java! عمل عظيم!
تفسيرات كهذه تجعلني فخورًا بكوني مبرمجًا. من الجميل أن نفهم كيف تعمل الأشياء.
الوصف معقد للغاية ويصعب فهمه. أفضّل شرحًا أكثر تفصيلاً للمفاهيم الأساسية.
هذا النص طويل بعض الشيء، لكنه مفيد للغاية. أحسنت!
هذه المقالة واضحة وفعالة في شرح هذا المفهوم. عظيم!
تهانينا! لقد درست هذا الموضوع في الكلية، ومع ذلك تعلمت أشياء جديدة مع هذا النص. انها كاملة جدا.