आपको जावा वर्चुअल मशीन के बारे में क्या पता होना चाहिए?



यह ब्लॉग JVM, JRE और JDK के बीच इसकी वास्तुकला और महत्वपूर्ण अंतर के घटकों के साथ जावा वर्चुअल मशीन की अवधारणा को विस्तार से कवर करेगा

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

जावा वर्चुअल मशीन क्या है?

जावा वर्चुअल मशीन एक प्लेटफ़ॉर्म-स्वतंत्र सार मशीन है जो एक रनटाइम वातावरण प्रदान करती है जिसमें जावा बाइट कोड निष्पादित होता है।





यह जावा रनटाइम वातावरण का एक हिस्सा है जो जावा बाइटकोड को मशीन-पठनीय भाषा में परिवर्तित करता है। मुख्य हमारे पास जावा प्रोग्राम है जिसे वास्तव में जावा वर्चुअल मशीन कहा जाता है।

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

हमें जावा वर्चुअल मशीन की आवश्यकता क्यों है?

हमें उन कार्यों के लिए जावा वर्चुअल मशीन की आवश्यकता है जो यह कार्य करता है जो जावा से जुड़े किसी भी विकास के लिए अत्यंत आवश्यक हैं। निम्नलिखित कुछ कार्य हैं जो जावा वर्चुअल मशीन करता है।



  • कोड लोड करता है
  • कोड सत्यापन
  • कोड का निष्पादन
  • यह अनुप्रयोगों के लिए रन-टाइम वातावरण प्रदान करता है
  • मेमोरी क्षेत्र
  • रजिस्टर सेट करें
  • एक कचरा संग्रह ढेर प्रदान करता है
  • घातक त्रुटियों की रिपोर्टिंग
  • प्रदान करता है एक कक्षा फाइल का प्रारूप

इन सभी कार्यों के साथ, जावा वर्चुअल मशीन जावा विकास का एक अभिन्न अंग है। आइए यह समझने की कोशिश करें कि यह जावा वर्चुअल मशीन आर्किटेक्चर की मदद से कैसे काम करता है।

जावा वर्चुअल मशीन आर्किटेक्चर

जावा वर्चुअल मशीन वास्तुकला बहुत सरल है, इसमें एक मेमोरी क्षेत्र, एक क्लास लोडर और अन्य घटकों के बीच एक निष्पादन इंजन है। आइए हम उनमें से प्रत्येक पर विस्तार से चर्चा करें।

क्लासरूम

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



    • बूटस्ट्रैप ClassLoader - यह Extension ClassLoader की सुपर क्लास है जो rt.jar फ़ाइल को लोड करती है।

    • विस्तार ClassLoader - यह निर्देशिका में स्थित जार फ़ाइलों को लोड करता है।

    • प्रणाली / आवेदन ClassLoader - यह Classpath को Classpath से लोड करता है।

    • लोड हो रहा है ऑपरेशन - पहले classLoader .class फ़ाइलों को लोड करता है और बाइनरी प्रारूप में संबंधित डेटा उत्पन्न करता है जिसे विधि क्षेत्र में सहेजा जाता है।

    • लिंकिंग ऑपरेशन - लोड करने के बाद इसे तैयार करता है, सत्यापित करता है और संकल्प करता है। JVM वर्ग चर के लिए स्मृति आवंटित करता है और डिफ़ॉल्ट मानों के लिए स्मृति को प्रारंभ करता है। यह .class फ़ाइल की शुद्धता सुनिश्चित करता है और जब सत्यापन विफल हो जाता है, तो हमें रनटाइम अपवाद त्रुटि मिलती है।

    • आरंभ - सभी स्थिर चर को इस चरण में कोड ब्लॉक में परिभाषित उनके मूल्यों के साथ सौंपा गया है।

जेवीएम मेमोरी

  • विधि क्षेत्र - यह प्रत्येक वर्ग के लिए संरचनाओं को संग्रहीत करता है जैसे कोड, फ़ील्ड डेटा, रनटाइम निरंतर पूल, विधि डेटा, आदि।

  • ढेर - ढेर में रनटाइम पर ऑब्जेक्ट्स आवंटित किए जाते हैं।

  • JVM भाषा के ढेर - यह स्थानीय चर और परिणाम संग्रहीत करता है। यह परिणाम लाने और वापस करने में महत्वपूर्ण भूमिका निभाता है। जब भी कोई विधि लागू की जाती है तो एक फ्रेम बनाया जाता है और जैसे ही आह्वान समाप्त होता है या पूरा होता है, नष्ट हो जाता है।

  • पीसी रजिस्टर - इसमें JVMinstruction का पता या स्थान है जिसे निष्पादित किया जा रहा है।

    क्या जावा के लिए उपयोग करने के लिए
  • मूल विधि ढेर - अनुप्रयोगों में उपयोग किए जाने वाले सभी मूल तरीके देशी पद्धति के ढेर में मौजूद हैं।

  • निष्पादन इंजन - एक निष्पादन इंजन में एक वर्चुअल प्रोसेसर, एक दुभाषिया और एक होता है JIT संकलक।

  • मूल विधि इंटरफेस - यह है एक जो उपलब्ध कराता है।

अब जब हमने JVM की वास्तुकला को समझ लिया है, तो आइए कोड की निष्पादन प्रक्रिया और संकलन पर एक नज़र डालते हैं।

निष्पादन की प्रक्रिया

जावा कोड के निष्पादन और संकलन के दौरान निम्नलिखित चरण होते हैं।

  • मुख्य विधि एकल फ़ाइल में संग्रहीत है और अन्य विधियाँ विभिन्न फ़ाइलों में संग्रहीत हैं।
  • संकलन के बाद, यह संबंधित .class फ़ाइलें प्रदान करेगा, जिसमें C के विपरीत, बिना किसी लिंकिंग के बाइट कोड होगा।
  • निष्पादन के दौरान, क्लास फ़ाइलों को क्लासलोडर का उपयोग करके किसी भी उल्लंघनों के लिए सत्यापित किया जाता है।
  • इसके बाद, बायटेकोड को संबंधित देशी मशीन कोड में बदल दिया जाता है। यह भी कारण है कि जावा तुलनात्मक रूप से धीमा है।

अब जब हम जानते हैं कि निष्पादन कैसे काम करता है, तो आइए JDK, JRE और JVM के अंतर पर एक नज़र डालते हैं।

JDK, JRE, और JVM के बीच अंतर

निम्नलिखित कुछ महत्वपूर्ण अंतर हैं JDK , जेवीएम, और जेआरई।

  1. JDK जावा विकास किट के लिए है, और JRE जावा रनटाइम वातावरण के लिए है।
  2. JDK विकास के लिए है जबकि JRE रन टाइम वातावरण के लिए है।
  3. JVM किसी भी जावा प्रोग्राम को चलाने के लिए JDK और JRE का अनिवार्य हिस्सा है।
  4. JVM जावा प्रोग्रामिंग का एक अभिन्न अंग है और प्लेटफ़ॉर्म स्वतंत्रता प्रदान करता है।

यह हमें इस लेख के अंत में लाता है जहां हमने जावा वर्चुअल मशीन के बारे में विस्तार से सीखा है। मुझे आशा है कि आप इस ट्यूटोरियल में आपके साथ साझा किए गए सभी के साथ स्पष्ट हैं।

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

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

यदि आप किसी भी प्रश्न के उत्तर में आते हैं, तो 'जावा वर्चुअल मशीन' के टिप्पणी अनुभाग में अपने सभी प्रश्न पूछने के लिए स्वतंत्र महसूस करें और हमारी टीम जवाब देने में प्रसन्न होगी।