يتم إكمال تخصيص ذاكرة Java وإعادة تدويرها تلقائيًا من خلال عملية جمع القمامة JVM. على عكس C ، لا يحتاج مطورو Java إلى كتابة التعليمات البرمجية الخاصة بهم لتنفيذ جمع القمامة. هذه واحدة من العديد من الميزات التي تحظى بها Java بشعبية كبيرة بين الجميع ، ويمكن أن تساعد المبرمجين على كتابة برامج Java بشكل أفضل.
هذا البرنامج التعليمي هو الجزء الأول من السلسلة. سيتم شرح المصطلحات الأساسية أولاً ، مثل JDK و JVM و JRE و HotspotVM. بعد ذلك ، سنقدم بنية JVM وهيكل ذاكرة Java Chep. فهم هذه الأساسيات أمر مهم لفهم المعرفة اللاحقة لإعادة تدوير القمامة.
شروط جافا الرئيسية
Javaapi: سلسلة من المكتبات المغلفة التي تساعد المطورين على إنشاء تطبيقات Java.
Java Development Toolkit (JDK): سلسلة من الأدوات لمساعدة المطورين على إنشاء تطبيقات Java. يحتوي JDK على أدوات لتجميع تطبيقات Java وتوزيعها وتوزيعها ومراقبة.
Java Virtual Machine (JVM): JVM هي بنية كمبيوتر مجردة. تتم كتابة برامج Java وفقًا لميزات JVM. JVM خاص بنظام التشغيل ويمكنه ترجمة تعليمات Java إلى تعليمات هي أنظمة أساسية وتنفيذها. JVM يضمن استقلال منصة Java.
Java Runtime Environment (JRE): JRE يتضمن تنفيذ JVM و Java API.
Javahotspot الجهاز الظاهري
قد يعتمد كل تطبيق JVM نهجًا مختلفًا لتنفيذ آلية جمع القمامة. قبل الاستحواذ على Sun ، استخدم Oracle Jrockitjvm وبعد الاستحواذ ، تم استخدام spotjvm. لدى Oracle حاليًا تطبيقان JVM وسيتم دمج تطبيق اثنين من JVM إلى واحد بعد فترة من الوقت.
HotspotJVM هو جزء من المكونات الأساسية الحالية لمعيار منصة Oraclese. في هذا البرنامج التعليمي لمجموعة القمامة ، سنفهم مبادئ جمع القمامة على أساس الأجهزة الافتراضية للنقطة الساخنة.
العمارة JVM
تلخص الصورة التالية المكونات الرئيسية لـ JVM. في بنية JVM ، فإن المكونين الرئيسيين المتعلقة بجمع القمامة هما ذاكرة الكومة وجامع القمامة. ذاكرة الكومة هي منطقة بيانات الذاكرة المستخدمة لحفظ مثيلات الكائن في وقت التشغيل. سيعمل جامع القمامة أيضًا هنا. الآن نحن نعرف كيف تعمل هذه المكونات في الإطار.
ذاكرة كومة جافا
من الضروري فهم دور نموذج ذاكرة JVM الموجود في ذاكرة الكومة. في وقت التشغيل ، يتم تخزين مثيلات Java في منطقة ذاكرة الكومة. عندما لا يتم الرجوع إلى كائن ، تتم إزالة الحالة من ذاكرة الكومة. في عملية جمع القمامة ، ستتم إزالة هذه الكائنات من ذاكرة الكومة وسيتم إعادة تدوير مساحة الذاكرة. المجالات الثلاثة الرئيسية التالية لذاكرة الكومة:
جيل شاب
Eden Space (Edenspace ، أي مثيل يدخل منطقة ذاكرة وقت التشغيل عبر Eden Space)
S0Survivor Space (S0Survivorspace ، سيتم نقل الحالات الموجودة لفترة طويلة من مساحة Eden إلى مساحة S0Survivor)
سيتم نقل مساحة S1Survivor (الحالات الموجودة لفترة أطول من الوقت من مساحة S0Survivor إلى مساحة S1Survivor)
سيتم الترويج لحالات الجيل القديم من S1 إلى مستوطنة (جيل مدى الحياة)
يحتوي الجيل الدائم على معلومات التعريف حول الفصول والأساليب والتفاصيل الأخرى
تمت إزالة مساحة الجيل الدائم في ميزة Java 8.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة يقدم بإيجاز آلية جمع القمامة Java ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!