English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يقسم JVM مساحة الذاكرة إلى جزأين، هما: الصف و مساحة الجهاز الافتراضي. تُستخدم مساحة الصف لتحديد طريقة تنفيذ الدوال والمتغيرات المحلية.
يُخزن الصف دائمًا الكتل بنظام LIFO، بينما يستخدم الجهاز الافتراضي تخصيصًا ديناميكيًا لتخصيص وتسريح كتل الذاكرة.
ستظل ذاكرة الجهاز الافتراضي موجودة حتى يحدث أحد الأحداث التالية:
انتهاء البرنامج
لا يوجد ذاكرة
على العكس من ذلك، يظل ذاكرة الصف المخصصة موجودة حتى العودة من الدالة. إليك الفرق.
الرقم | المفتاح | الصف | ذاكرة الجهاز الافتراضي |
---|---|---|---|
1 | أساسي | يُستخدم محفظة الصف لتحديد مشاريع قصيرة العمر، مثل المتغيرات المحلية، والمراجع إلى الكائنات | تُخصص ذاكرة الجهاز الافتراضي لتحديد الكائنات وJRE الكلاسيكية. |
2 | طريقة التسلسل | الصف الحالي دائمًا ما يتم الحفاظ عليه بنظام LIFO (آخر إدخال أولاً) | ذاكرة الجهاز الافتراضي تُنقسم بشكل ديناميكي وليس هناك نمط ثابت يمكن استخدامه لتخصيص وتسريح الكتل في الذاكرة. |
3 | الحجم | يمكننا استخدام معامل JVM -XSS لزيادة حجم ذاكرة النص. | يمكننا استخدام خيارات JVM -Xms و-Xmx لزيادة أو تقليل حجم ذاكرة الحجم. |
4 | رؤية | المتغيرات مرئية فقط للسلسلة المالك | جميع الأطراف ترى |
5 | استثناء | JVM ستعطل java.lang.StackOverflowError | JVM ستعطل java.lang.OutOfMemoryError |