اقرأ في هذا المقال
الذاكرة في لغة البرمجة جافا – Memory in Java Programming Language:
أقسام الذاكرة في لغة البرمجة جافا:
آلة جافا الافتراضية تقسم الذاكرة عند تنفيذ برنامج مكتوب بلغة البرمجة جافا إلى ذاكرة (Heap) وذاكرة (Stack)، وفيما يلي هذه الأقسام.
المساحة Heap في لغة جافا:
المساحة Stack:
يتم تنفيذ كود البرنامج المكتوب بلغة البرمجة جافا دائما داخل ما يسمى ب (Threads)، وتقوم آلة جافا الافتراضية بتشغيل (Thread) واحد أو أكثر أثناء عمل البرنامج، وعند تشغيل البرنامج تقوم آلة جافا الافتراضية بداية بتشغيل أول (Thread) ويُسمى (Main Thread)، وكل (Thread) يتم إنشاؤه يتم تخصيص مساحة له تسمى (Stack) وفيها يتم حفظ البيانات الخاصة بكل دالة نقوم باستدعائها بداخله.
المساحة Metaspace:
هي مساحة في الذاكرة يتم تخزين الحقول الثابتة من نوع (static) بالإضافة للبيانات عن الكلاسات (classes) التي يتم تحميلها و الدوال الخاصة بهم أيضاً، وفي الإصدار (8) من لغة جافا ظهر هذا القسم من الذاكرة ليستبدل القسم القديم (Permanent Generation) المحدود الذاكرة.
والذي يعرف باختصار (PermGen) الذي كان يتسبب بالخطأ (OutOfMemoryError) عندما يمتلئ في البرامج التي تحتاج لتحميل عدد كبير من الكلاسات، ومساحة (Metaspace) لها العديد من المزايا أهمها قابلية التوسعة، بالإضافة إلى أن جامع القمامة أصبح يستطيع تأدية عمله بإزالة الكلاسات غير المستخدمة من الذاكرة بشكل أفضل.