विज्ञापन

जावा वर्चुअल मशीन (JVM) जावा में प्रोग्रामिंग करते समय एक वास्तविक नाम ड्रॉपर है। नाम जो इंगित करता है उसके विपरीत, जावा वर्चुअल मशीन का सामना अन्य प्रोग्रामिंग भाषाओं के साथ भी किया जा सकता है।

सामान्य तौर पर, यह जानना आवश्यक नहीं है कि जावा वर्चुअल मशीन क्या है, या यहां तक ​​कि यह क्या करता है, जावा में प्रोग्राम करने में सक्षम होने के लिए। दूसरी ओर, एक मशीन के आंतरिक कामकाज से खुद को परिचित करना आपकी समझ और समग्र अंतर्दृष्टि को बढ़ाने में मदद करता है।

यह लेख जावा वर्चुअल मशीन के विचार पर ब्रश करता है, यह आपके लिए क्या करता है, और सबसे महत्वपूर्ण पेशेवरों और विपक्षों में से कुछ। हालांकि मैंने इसे सरल रखने की कोशिश की है, और निश्चित रूप से इस विषय पर अधिक उन्नत साहित्य है, जावा और प्रोग्रामिंग की एक अल्पविकसित समझ अपेक्षित है।

उच्च-स्तरीय भाषाएँ

एक प्रोग्रामिंग भाषा के शब्दार्थ को हमारी प्राकृतिक भाषा के करीब होने के लिए डिज़ाइन किया गया है, जबकि संक्षिप्त और मशीन के लिए व्याख्या करना आसान है। जैसा कि आप शायद जानते हैं, प्रोग्रामिंग भाषा पूरी तरह से मशीन कोड से भिन्न है, एक प्रोग्राम का निर्माण और चलाने के लिए कंप्यूटर द्वारा उपयोग किए जाने वाले निर्देशों का सेट। इसे हम कहते हैं

instagram viewer
उच्च स्तरीय भाषाएं; मशीन कोड से अमूर्त एक या कई स्तरों।

इससे पहले कि यह चलने में सक्षम हो, उच्च-स्तरीय कोड की पहले व्याख्या की जानी चाहिए। बहुत सारे प्रोग्रामिंग इंटरफेस पहले से संकलित हैं (एओटी संकलन) एक विशिष्ट मंच के लिए। यह रनटाइम के दौरान कार्यक्रम को अधिक कुशल बनाता है, लेकिन विभिन्न प्लेटफार्मों के साथ अभी तक कम संगत है। इसके विपरीत जावा, एक मध्यवर्ती भाषा के साथ काम करता है जिसे कहा जाता है जावा बायटेकोड और यह जावा वर्चुअल मशीन.

जेवीएम और जावा बाइटकोड

जब आपका जावा प्रोजेक्ट बनता है, तो यह स्रोत कोड (* में निहित) का अनुवाद करता है।जावा स्रोत फ़ाइलें) Java bytecode (अक्सर * .class फ़ाइलों में निहित) के लिए। यह आपके उच्च-स्तरीय कोड को मशीन कोड के करीब एक कदम ले जाता है, लेकिन अभी तक वहाँ नहीं है। यह बायोटेक कॉम्पैक्ट निर्देशों का एक संग्रह है; एक मशीन की व्याख्या के लिए आसान है, लेकिन कम पठनीय है।

जब आप अपने कंप्यूटर, सेलफोन, या किसी अन्य जावा-सक्षम प्लेटफ़ॉर्म पर जावा एप्लिकेशन चलाते हैं, तो आप अनिवार्य रूप से जावा वर्चुअल मशीन के लिए इस जावा बाइटकोड को पास करते हैं। जावा वर्चुअल मशीन में दुभाषिया आमतौर पर तथाकथित के सिद्धांतों का पालन करते हुए, रनटाइम पर पूरे बायटेकोड को संकलित करना शुरू करता है बस में समय संकलन. यह जावा एप्लिकेशन को खोलने के दौरान विशिष्ट, यद्यपि अक्सर थोड़ी देरी के लिए बनाता है, लेकिन आम तौर पर इसकी तुलना में कार्यक्रम के प्रदर्शन को बढ़ाता है संकलन किया गया.

जावा वर्चुअल मशीन

इस प्रणाली का मुख्य लाभ बढ़ी हुई संगतता है। चूंकि आपके एप्लिकेशन सीधे आपके हार्डवेयर पर वर्चुअल मशीन में चलते हैं, इसलिए डेवलपर प्रोग्राम कर सकता है और एक बार उनके आवेदन का निर्माण करें, जिसे तब जावा वर्चुअल के कार्यान्वयन के साथ हर डिवाइस पर निष्पादित किया जा सकता है मशीन। इस सिद्धांत ने जावा के नारे को जन्म दिया है: "एक बार लिखो, हर जगह दौड़ो.”

प्रो: संगतता और बढ़ी हुई सुरक्षा

कोड संगतता के अलावा, जावा वर्चुअल मशीन अन्य लाभों के साथ आती है। उनमें से एक सबसे महत्वपूर्ण जावा वर्चुअल मशीन के परिणामस्वरूप जावा कार्यक्रमों की सापेक्ष सुरक्षा है। सुरक्षा, जिसका अर्थ है कि वर्चुअल मशीन में चलने वाला एक प्रोग्राम, उपयोगकर्ता की ऑपरेटिंग सिस्टम, या भ्रष्ट डेटा फ़ाइलों को बाधित करने की संभावना कम है, यदि त्रुटियां होती हैं।

Con: विभिन्न JVM कार्यान्वयन और डिबगिंग

कोड संगतता और जावा वर्चुअल मशीन के खिलाफ मुख्य आलोचनाओं में से एक आवाज बाद के कई अलग-अलग कार्यान्वयनों के कारण है। आप देखते हैं, जावा वर्चुअल मशीन सॉफ्टवेयर का एक टुकड़ा नहीं है। जावा के मालिक ओरेकल, जावा वर्चुअल मशीन के अपने कार्यान्वयन हैं, लेकिन अन्य लोग इसे बना सकते हैं यदि यह विभिन्न व्यावहारिक और अनुबंध के दावों को संतुष्ट करता है।

इन विभिन्न कार्यान्वयनों का मतलब है कि आपका कोड एक जावा वर्चुअल मशीन पर आसानी से चल सकता है, लेकिन दूसरे पर क्रैश और जल सकता है। हालांकि, व्यवहार में, आप अपना कोड एक बार लिख सकते हैं और इसे हर जगह चला सकते हैं, कभी-कभी अधिक जटिल कोड सही संचालन सुनिश्चित करने के लिए अभी भी विभिन्न जावा वर्चुअल मशीन कार्यान्वयन में डिबग किया जाना है।

क्या आपको जावा वर्चुअल मशीन के साथ काम करने का कोई अनुभव है? यदि हां, तो क्या मैं यहां कुछ भी याद कर रहा हूं जिसका उल्लेख किया जाना चाहिए?

छवि क्रेडिट: Michaelaw, Dcoetzee

मैं बेल्जियम से एक लेखक और कंप्यूटर विज्ञान का छात्र हूं। आप हमेशा मुझे एक अच्छा लेख विचार, पुस्तक सिफारिश, या नुस्खा विचार के साथ एक एहसान कर सकते हैं।