JDK बनाम JRE बनाम JVM Java – उनके बीच अंतर

JDK, JRE और JVM के बीच मुख्य अंतर

  • JDK एक सॉफ्टवेयर डेवलपमेंट किट है जबकि JRE एक सॉफ्टवेयर बंडल है जो Java JVM एक प्रोग्राम चलाने के लिए है, जबकि JVM बाइटकोड निष्पादित करने के लिए एक वातावरण है।
  • JDK का पूर्ण रूप है Java डेवलपमेंट किट, जबकि JRE का पूर्ण रूप है Java रनटाइम एनवायरनमेंट, जबकि JVM का पूर्ण रूप है Java आभासी मशीन।
  • JDK और JRE प्लेटफॉर्म पर निर्भर हैं, जबकि JVM बाइटकोड स्तर पर प्लेटफॉर्म-स्वतंत्र है, लेकिन प्लेटफॉर्म-विशिष्ट कार्यान्वयन पर निर्भर करता है।
  • JDK में विकास, डिबगिंग आदि के लिए उपकरण शामिल होते हैं। JRE में क्लास लाइब्रेरी और अन्य सहायक फ़ाइलें शामिल होती हैं, जबकि JVM में सॉफ्टवेयर विकास उपकरण शामिल नहीं होते हैं।
  • JDK इंस्टॉलर के साथ आता है, दूसरी ओर, JRE में केवल स्रोत कोड निष्पादित करने के लिए वातावरण होता है, जबकि JVM सॉफ्टवेयर JDK और JRE दोनों में बंडल होता है।

जेडीके क्या है?

JDK एक सॉफ्टवेयर विकास वातावरण है जिसका उपयोग एप्लेट बनाने और Java अनुप्रयोग। JDK का पूर्ण रूप है Java विकास उपकरण समूह। Java डेवलपर्स इसका उपयोग कर सकते हैं Windows, macOS, Solaris, और लिनक्स। JDK उन्हें कोड करने और चलाने में मदद करता है Java एक ही कंप्यूटर पर एक से अधिक JDK संस्करण स्थापित करना संभव है।

जेआरई क्या है?

JRE एक सॉफ्टवेयर का हिस्सा है जिसे दूसरे सॉफ्टवेयर को चलाने के लिए डिज़ाइन किया गया है। इसमें क्लास लाइब्रेरी, लोडर क्लास और JVM शामिल हैं। सरल शब्दों में, अगर आप चलाना चाहते हैं Java प्रोग्राम के लिए आपको JRE की आवश्यकता है। यदि आप प्रोग्रामर नहीं हैं, तो आपको इसकी आवश्यकता नहीं है JDK स्थापित करें, लेकिन सिर्फ JRE चलाने के लिए Java कार्यक्रम। हालाँकि, सभी JDK संस्करण बंडल के साथ आते हैं Java रनटाइम एनवायरनमेंट, इसलिए आपको अपने पीसी में JRE को अलग से डाउनलोड और इंस्टॉल करने की आवश्यकता नहीं है। JRE का पूरा नाम है Java रनटाइम वातावरण.

जेवीएम क्या है?

JVM एक इंजन है जो रनटाइम वातावरण प्रदान करता है Java कोड या अनुप्रयोग। यह परिवर्तित करता है Java बाइटकोड को मशीन भाषा में बदलना। JVM इसका एक हिस्सा है Java रन एनवायरनमेंट (JRE)। इसे अलग से डाउनलोड और इंस्टॉल नहीं किया जा सकता। JVM को इंस्टॉल करने के लिए, आपको JRE को इंस्टॉल करना होगा। JVM का पूरा नाम है Java आभासी मशीन.

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

JDK का उपयोग क्यों करें?

JDK का उपयोग करने के महत्वपूर्ण कारण यहां दिए गए हैं:

  • JDK में लिखने के लिए आवश्यक उपकरण शामिल हैं Java प्रोग्राम, और उन्हें निष्पादित करने के लिए JRE.
  • इसमें एक कंपाइलर, Java एप्लिकेशन लॉन्चर, एप्लेटव्यूअर, आदि.
  • कंपाइलर में लिखे गए कोड को परिवर्तित करता है Java बाइट कोड में.
  • Java एप्लिकेशन लॉन्चर एक JRE खोलता है, आवश्यक क्लास लोड करता है, और इसकी मुख्य विधि निष्पादित करता है।

JRE का उपयोग क्यों करें?

JRE का उपयोग करने के महत्वपूर्ण कारण यहां दिए गए हैं:

  • JRE में क्लास लाइब्रेरी, JVM और अन्य सहायक फ़ाइलें शामिल हैं। इसमें कोई टूल नहीं है Java डिबगर, कंपाइलर आदि जैसे विकास कार्य।
  • यह महत्वपूर्ण पैकेज क्लासेस जैसे कि math, swingetc, util, lang, awt, और runtime लाइब्रेरीज़ का उपयोग करता है।
  • अगर आपको भागना पड़े Java यदि आप एक एप्लेट का उपयोग कर रहे हैं, तो आपके सिस्टम में JRE अवश्य स्थापित होना चाहिए।

जेवीएम क्यों?

JVM का उपयोग करने के महत्वपूर्ण कारण यहां दिए गए हैं:

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

JDK की विशेषताएं

JDK की महत्वपूर्ण विशेषताएं इस प्रकार हैं:

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

जेआरई की विशेषताएं

जेआरई की महत्वपूर्ण विशेषताएं इस प्रकार हैं:

  • Java रनटाइम एनवायरनमेंट उपकरणों का एक सेट है जिसके उपयोग से JVM वास्तव में चलता है।
  • JRE में परिनियोजन तकनीक शामिल है, जिसमें शामिल है Java वेब प्रारंभ और Java लगाना।
  • डेवलपर्स आसानी से JRE में स्रोत कोड चला सकते हैं, लेकिन वह इसे लिख और संकलित नहीं कर सकते हैं। Java कार्यक्रम.
  • इसमें एकीकरण लाइब्रेरी शामिल हैं जैसे Java डेटाबेस कनेक्टिविटी (JDBC), रिमोट मेथड इनवोकेशन (RMI), Java नामकरण और निर्देशिका इंटरफ़ेस (JNDI), और अधिक।
  • JRE में JVM और Java हॉटस्पॉट वर्चुअल मशीन क्लाइंट.

जेवीएम की विशेषताएं

JVM की महत्वपूर्ण विशेषताएं इस प्रकार हैं:

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

JDK कैसे कार्य करता है?

JDK फ़ंक्शन
JDK कार्यक्षमता

JDK के महत्वपूर्ण घटक इस प्रकार हैं:

  • JDK और JRE: JDK प्रोग्रामर्स को कोर बनाने में सक्षम बनाता है Java प्रोग्राम जो JRE द्वारा चलाए जा सकते हैं, जिसमें JVM और क्लास लाइब्रेरीज़ शामिल हैं।
  • कक्षा पुस्तकालय: यह गतिशील रूप से लोड करने योग्य पुस्तकालयों का एक समूह है Java प्रोग्राम रन टाइम पर कॉल कर सकता है.
  • संकलक: यह एक Java प्रोग्राम जो डेवलपर्स की टेक्स्ट फ़ाइल स्वीकार करता है और संकलित करता है Java क्लास फ़ाइल। यह कंपाइलर द्वारा दिया गया आउटपुट का सामान्य रूप है, जिसमें शामिल है Java बाइट कोड. Java, प्राथमिक संकलक है Javac.
  • डिबगर्स: डीबगर एक है Java प्रोग्राम जो डेवलपर्स को परीक्षण और डिबग करने की सुविधा देता है Java कार्यक्रम.
  • Javaडॉक्टर: Javaडॉक सन माइक्रोसिस्टम्स द्वारा बनाया गया दस्तावेज है Java. JavaDoc का उपयोग स्रोत प्रोग्राम से HTML फ़ाइल में API दस्तावेज़ बनाने के लिए किया जा सकता है

JRE कैसे कार्य करता है?

जेआरई फ़ंक्शन

जेआरई कार्यक्षमता

JRE में JVM का एक इंस्टेंस, लाइब्रेरी क्लासेस और डेवलपमेंट टूल्स होते हैं। एक बार जब आप लिख कर संकलित कर लेते हैं Java कोड, कम्पाइलर बाइट कोड वाली एक क्लास फ़ाइल उत्पन्न करता है।

जेआरई के महत्वपूर्ण घटक इस प्रकार हैं:

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

इस तरह से, Java कार्यक्रम JRE में चलता है.

JVM कैसे कार्य करता है?

जेवीएम फ़ंक्शन

जेवीएम कार्यक्षमता

JVM के महत्वपूर्ण घटक इस प्रकार हैं:

1) क्लास लोडर

क्लास लोडर एक सबसिस्टम है जिसका उपयोग क्लास फ़ाइलों को लोड करने के लिए किया जाता है। यह तीन प्रमुख कार्य करता है अर्थात लोडिंग, लिंकिंग और इनिशियलाइज़ेशन।

2) विधि क्षेत्र

JVM मेथड एरिया क्लास की संरचना को मेटाडेटा, कोड आदि के रूप में संग्रहीत करता है Java विधियाँ, और निरंतर रनटाइम पूल।

3) ढेर

सभी ऑब्जेक्ट, एरे और इंस्टेंस वैरिएबल को हीप में संग्रहीत किया जाता है। यह मेमोरी कई थ्रेड्स में साझा की जाती है।

4) JVM भाषा स्टैक

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

5) पीसी रजिस्टर

पीसी रजिस्टर पता संग्रहीत करते हैं Java वर्चुअल मशीन निर्देश, जो वर्तमान में निष्पादित हो रहा है। Java, प्रत्येक थ्रेड का अपना अलग पीसी रजिस्टर होता है।

6) मूल विधि स्टैक

नेटिव मेथड स्टैक नेटिव कोड के निर्देशों को होल्ड करता है जो नेटिव लाइब्रेरी पर निर्भर करता है। यह नेटिव हीप्स पर मेमोरी आवंटित करता है या किसी भी प्रकार के स्टैक का उपयोग करता है।

7) निष्पादन इंजन

यह एक प्रकार का सॉफ्टवेयर है जिसका उपयोग सॉफ्टवेयर, हार्डवेयर या संपूर्ण सिस्टम का परीक्षण करने के लिए किया जाता है। परीक्षण निष्पादन इंजन कभी भी परीक्षण किए गए उत्पाद के बारे में कोई जानकारी नहीं रखता है।

8) मूल विधि इंटरफ़ेस

नेटिव मेथड इंटरफ़ेस एक प्रोग्रामिंग फ्रेमवर्क है। यह अनुमति देता है Java कोड, जो लाइब्रेरीज़ और मूल अनुप्रयोगों द्वारा कॉल करने के लिए JVM में चल रहा है।

9) मूल विधि लाइब्रेरी

नेटिव लाइब्रेरीज़ नेटिव लाइब्रेरीज़ (सी, C++), जो निष्पादन इंजन के लिए आवश्यक हैं।

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

JDK बनाम JRE बनाम JVM के बीच प्रमुख अंतर इस प्रकार हैं:

JDK JRE JVM
JDK का पूर्ण रूप है Java विकास उपकरण समूह। जे.आर.ई. का पूर्ण रूप है Java रनटाइम वातावरण. JVM का पूर्ण रूप है Java आभासी मशीन।
JDK एक सॉफ्टवेयर डेवलपमेंट किट है, जिसका उपयोग अनुप्रयोगों को विकसित करने के लिए किया जाता है। Java. यह एक सॉफ्टवेयर बंडल है जो प्रदान करता है Java चलाने के लिए आवश्यक घटकों के साथ क्लास लाइब्रेरी Java कोड। JVM निष्पादित करता है Java बाइट कोड और इसे निष्पादित करने के लिए एक वातावरण प्रदान करता है।
JDK प्लेटफॉर्म पर निर्भर है. JRE भी प्लेटफ़ॉर्म पर निर्भर है। JVM प्लेटफ़ॉर्म-स्वतंत्र है।
इसमें जावा कोड के विकास, डिबगिंग और निगरानी के लिए उपकरण शामिल हैं। इसमें क्लास लाइब्रेरीज़ और अन्य सहायक फ़ाइलें होती हैं जिनकी JVM को प्रोग्राम निष्पादित करने के लिए आवश्यकता होती है। सॉफ्टवेयर विकास उपकरण JVM में शामिल नहीं हैं।
यह JRE का सुपरसेट है यह JDK का उपसमुच्चय है। JVM, JRE का एक उपसमुच्चय है।
JDK डेवलपर्स को बनाने में सक्षम बनाता है Java प्रोग्राम जिन्हें JRE और JVM द्वारा निष्पादित और चलाया जा सकता है। जेआरई इसका हिस्सा है Java जो JVM बनाता है. यह Java प्लेटफ़ॉर्म घटक जो स्रोत कोड निष्पादित करता है.
JDK इंस्टॉलर के साथ आता है। JRE में केवल स्रोत कोड निष्पादित करने के लिए वातावरण होता है। JVM, JDK और JRE दोनों सॉफ्टवेयर में सम्मिलित है।