जेवीएम स्टैक एरिया को समझने के लिए कुछ प्रमुख बिंदु निम्नलिखित हैं -
-
थ्रेड के निर्माण के दौरान, जावा वर्चुअल मशीन एक अलग स्टैक बनाती है।
-
JVM इस स्टैक पर केवल दो ऑपरेशन करता है। ऑपरेशन पुश (यानी इंसर्ट) और पॉप (यानी डिलीट) हैं।
-
जब कोई थ्रेड वर्तमान में निष्पादन में होता है, तो उससे जुड़े स्टैक को रनटाइम स्टैक के रूप में जाना जाता है।
-
थ्रेड, इंटरमीडिएट गणना, स्थानीय चर के असाइनमेंट, कॉलिंग पैरामीटर इत्यादि द्वारा की गई प्रत्येक विधि कॉल रनटाइम स्टैक में एक ऑपरेशन के रूप में संग्रहीत की जाती है।
-
एक बार जब थ्रेड बंद हो जाता है या निष्पादन पूरा हो जाता है, तो स्टैक से संबंधित भाग हटा दिया जाता है।
-
एक बार थ्रेड द्वारा सभी कॉल पूर्ण हो जाने पर, स्टैक खाली हो जाता है, और हटा दिया जाता है।
-
थ्रेड को समाप्त करने से ठीक पहले, JVM थ्रेड से जुड़े स्टैक को नष्ट कर देता है।
-
एक थ्रेड से जुड़े डेटा को स्टोर करने वाला स्टैक केवल उस विशिष्ट थ्रेड के लिए ही उपलब्ध होता है, और अन्य थ्रेड्स के लिए पहुंच योग्य नहीं होता है।
-
यह इंगित करता है कि स्टैक में डेटा थ्रेड-सुरक्षित है।
-
थ्रेड से जुड़े स्टैक के प्रत्येक डेटा को सक्रियण रिकॉर्ड या स्टैक फ़्रेम के रूप में जाना जाता है।
नोट - जेवीएम स्टैक के लिए सन्निहित मेमोरी लोकेशन होना अनिवार्य नहीं है।
सक्रियण रिकॉर्ड/स्टैक फ़्रेम की संरचना
इसमें तीन घटक होते हैं -
-
स्थानीय चर सरणी,
-
ऑपरेंड स्टैक, और
-
फ़्रेम डेटा
-
JVM वर्ग डेटा की जांच करके आवश्यक आकार का एक स्टैक फ्रेम बनाता है।
-
ऑपरेंड स्टैक JVM के लिए एक कार्यक्षेत्र की तरह कार्य करता है- इसका उपयोग मध्यवर्ती कम्प्यूटेशनल परिणामों को संग्रहीत करने के लिए किया जाता है। यह स्थानीय रूप से एक चर सरणी की तरह संरचित है, लेकिन स्टैक पर पुश और पॉप संचालन करके पहुँचा जा सकता है।
-
फ़्रेम डेटा - इसमें निरंतर डेटा मान और विधि द्वारा लौटाया गया डेटा होता है। इसके अलावा, इसमें अपवाद तालिका का एक संदर्भ होता है जिसमें कैच ब्लॉक के बारे में सभी जानकारी होती है जब अपवादों को पकड़ने की आवश्यकता होती है और प्रासंगिक संदेशों को कंसोल पर दिखाने की आवश्यकता होती है।