जावा वर्चुअल मशीन (JVM) जावा एप्लिकेशन और अंतर्निहित प्लेटफॉर्म के बीच एक अमूर्त परत है। जैसा कि नाम से ही स्पष्ट है, JVM एक "वर्चुअल" मशीन या प्रोसेसर के रूप में कार्य करता है। प्रोग्राम में शामिल बायटेकोड के लिए, वे एक भौतिक मशीन के साथ संचार कर रहे हैं; हालांकि, वे वास्तव में जेवीएम के साथ बातचीत कर रहे हैं।
JVM जावा पोर्टेबिलिटी को प्लेटफॉर्म और हार्डवेयर-स्वतंत्र अनुप्रयोगों के भीतर निष्पादित करने की अनुमति देता है। यह "एक बार लिखें, कहीं भी दौड़ें (WORA)" दर्शन का एक बड़ा हिस्सा है। JVM वास्तव में जावा रनटाइम एनवायरनमेंट (JRE) का हिस्सा है। यह जेआरई (जेवीएम प्लस बेस क्लास) है जो जावा बाइटकोड को किसी भी प्लेटफॉर्म पर चलाने में सक्षम बनाता है। जेवीएम द्वारा व्याख्या किए गए बाइटकोड, जेआरई में पाए जाने वाले वर्गों को केवल कॉल करते हैं जब उन्हें उन कार्यों को करने की आवश्यकता होती है जो वे स्वयं नहीं कर सकते हैं। कुछ क्रियाएं, जैसे कि अंतर्निहित हार्डवेयर या ऑपरेटिंग सिस्टम को निर्देशित, JVM द्वारा की जाती हैं। बाइटकोड में अपने आप में कार्यक्षमता की कमी होती है और उनके लिए कई कार्य करने के लिए JVM की आवश्यकता होती है। यह कथित सीमा वास्तव में एक फायदा है। सबसे पहले, यह अन्य निष्पादन योग्य कार्यक्रमों की तुलना में जावा प्रोग्राम को बहुत छोटा होने देता है। दूसरा, और सबसे महत्वपूर्ण बात यह है कि यह उन्हें बहुत पोर्टेबल होने की अनुमति देता है। चूंकि प्रत्येक जेवीएम एक विशिष्ट प्लेटफॉर्म के लिए तैयार किया गया है, एक जावा प्रोग्राम उस पर तब तक नहीं चल सकता जब तक: (1) इसके लिए एक उपयुक्त जेवीएम नहीं बनाया गया हो, और; (२) उस पर JVM लगा दिया गया है। इसलिए जावा प्रोग्राम की पोर्टेबिलिटी पूरी तरह से एक विशिष्ट जेवीएम की उपस्थिति पर निर्भर है। एक एप्लिकेशन और प्रत्येक अंतर्निहित प्लेटफॉर्म के बीच संचार बहुत परिष्कृत हो सकता है, लेकिन JVM दोनों के बीच अमूर्तता की एक परत प्रदान करके इसे अच्छी तरह से संभालता है। जैसे, डेवलपर्स को प्रत्येक एप्लिकेशन-प्लेटफ़ॉर्म जोड़ी के लिए शामिल पेचीदगियों से अवगत होने की आवश्यकता नहीं है।
0 Comments