Follow Us
माध्यम चुनें / Select Medium:
Eng (English) Hindi (हिन्दी)
ICSE • कक्षा 9 • Information Technology • अध्याय 1
अनुमानित समय: 45 Mins
प्रगति: अध्ययनरत

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग अवधारणाओं का परिचय (Introduction to Object Oriented Programming concepts)

आईसीएसई कक्षा 9 कंप्यूटर एप्लीकेशन/सूचना प्रौद्योगिकी में, "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग अवधारणाओं का परिचय" आधुनिक सॉफ्टवेयर इंजीनियरिंग के लिए मूलभूत आधारशिला के रूप में कार्य करता है। यह व्यापक अध्याय प्रक्रिया-उन्मुख प्रोग्रामिंग (पीओपी) से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) में वास्तुशिल्प प्रतिमान बदलाव की पड़ताल करता है। छात्र ओओपी के मूल दार्शनिक और संरचनात्मक सिद्धांतों में गहराई से उतरते हैं: एब्स्ट्रैक्शन (पृष्ठभूमि कार्यान्वयन विवरण के बिना आवश्यक विशेषताएं), एनकैप्सुलेशन (डेटा सदस्यों और सदस्य विधियों को डेटा छिपाने के साथ एक ही सुरक्षात्मक इकाई में बांधना), इनहेरिटेंस (पदानुक्रमित कोड पुन: प्रयोज्यता जहां व्युत्पन्न बाल वर्ग आधार मूल वर्गों से गुण और व्यवहार प्राप्त करते हैं), और बहुरूपता (कई रूपों को ग्रहण करने के लिए एक इकाई की क्षमता, विधि ओवरलोडिंग और गतिशील बाइंडिंग द्वारा उदाहरण)। इसके अलावा, यह मास्टर गाइड सन माइक्रोसिस्टम्स में जेम्स गोस्लिंग के तहत जावा की ऐतिहासिक उत्पत्ति, इसके वास्तुशिल्प स्तंभों-प्लेटफ़ॉर्म इंडिपेंडेंस, "राइट वन्स, रन एनीव्हेयर" (WORA), जावा वर्चुअल मशीन (JVM), जावा रनटाइम एनवायरनमेंट (JRE), जावा डेवलपमेंट किट (JDK), बाइटकोड (.class फ़ाइलें), और उच्च-प्रदर्शन जस्ट-इन-टाइम (JIT) कंपाइलर का उपयोग करने वाली दो-चरण संकलन/व्याख्या पाइपलाइन की जांच करता है। विस्तृत तुलनात्मक मैट्रिक्स, मेमोरी मॉडल, सिंटैक्स संरचनाएं और बोर्ड-शैली मूल्यांकन छात्रों को व्यापक महारत से लैस करते हैं।

1991 में एक निराशाजनक कॉफी ग्राइंडर और स्मार्ट टेलीविजन ने दुनिया की सबसे प्रमुख प्रोग्रामिंग भाषा को कैसे जन्म दिया?

1991 में, जेम्स गोस्लिंग के नेतृत्व में "ग्रीन टीम" के नाम से मशहूर सन माइक्रोसिस्टम्स के इंजीनियरों की एक गुप्त टीम ने अगली पीढ़ी के इंटरैक्टिव उपभोक्ता इलेक्ट्रॉनिक्स-सेट-टॉप केबल बॉक्स, स्मार्ट माइक्रोवेव ओवन और टेलीविजन नियंत्रकों के लिए सॉफ्टवेयर डिजाइन करने का काम शुरू किया। उन्होंने शुरू में C++ का उपयोग करने का प्रयास किया, लेकिन जल्द ही एक विनाशकारी बाधा में फंस गए: उपभोक्ता उपकरणों ने दर्जनों अलग-अलग, असंगत माइक्रोप्रोसेसर चिप्स का उपयोग किया! इंटेल चिप के लिए संकलित एक प्रोग्राम मोटोरोला चिप पर तुरंत क्रैश हो गया। गोस्लिंग ने महसूस किया कि प्रत्येक डिवाइस के लिए कोड को पुनः संकलित करना टिकाऊ नहीं था। अपने कार्यालय की खिड़की से बाहर एक ओक के पेड़ को देखते हुए प्रेरित होकर, उन्होंने एक क्रांतिकारी वास्तुकला की कल्पना की: क्या होगा यदि कार्यक्रमों को मशीन-विशिष्ट असेंबली भाषा में नहीं, बल्कि "बाइटकोड" नामक एक सार्वभौमिक, मध्यवर्ती डिजिटल ब्लूप्रिंट में संकलित किया जाए? प्रत्येक डिवाइस पर स्थापित एक हल्का वर्चुअल इंजन-जावा वर्चुअल मशीन (जेवीएम) उस यूनिवर्सल बाइटकोड को तुरंत स्थानीय मशीन कोड में अनुवादित कर देगा! वह सफलता ओक बन गई, और बाद में, जावा (गोस्लिंग की पसंदीदा इंडोनेशियाई कॉफी के नाम पर)। आज, जावा एंड्रॉइड स्मार्टफोन और एंटरप्राइज़ वित्तीय सर्वर से लेकर नासा मार्स रोवर्स तक 3 अरब से अधिक सक्रिय उपकरणों पर चलता है। जेवीएम इस जादू को कैसे हासिल करता है? आइए OOP और Java के बारे में जानें।

यह अध्याय क्यों महत्वपूर्ण है

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

अध्ययन से पूर्व (आवश्यक ज्ञान)

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

इस अध्याय के लक्ष्य

  • प्रक्रिया-उन्मुख प्रोग्रामिंग (पीओपी) और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) के बीच सख्ती से अंतर करें।
  • ओओपी के चार प्रमुख सिद्धांतों को स्पष्ट करें: डेटा एब्स्ट्रैक्शन, एनकैप्सुलेशन, इनहेरिटेंस और पॉलीमोर्फिज्म।
  • स्रोत कोड (.java), कंपाइलर (javac) के बीच भूमिका और संबंध समझाएं। बाइटकोड (.class), और JVM.
  • जावा के वास्तुशिल्प घटकों का पुनर्निर्माण करें: JDK, JRE, JVM, और JIT कंपाइलर।
  • वास्तुकला आरेखों के साथ "एक बार लिखें, कहीं भी चलाएं" (WORA) प्रतिमान को चित्रित करें।
  • बोर्ड-स्तरीय वैचारिक प्रश्नों को हल करें और जावा निष्पादन यांत्रिकी में सामान्य जाल की पहचान करें।

अध्याय रूपरेखा एवं प्रगति

1 1। प्रतिमान विकास: प्रक्रिया-उन्मुख...
2 2. ओओपी के चार प्रमुख स्तंभ
3 3. जावा निष्पादन पाइपलाइन: कंपाइलर,...
4 4. जेडीके बनाम जेआरई बनाम जेवीएम: आ...
5 5. जावा की मुख्य विशेषताएं: सन माइक...
6 6. जेवीएम के आंतरिक यांत्रिकी: क्ला...

सम्पूर्ण सैद्धांतिक एवं वैचारिक अध्ययन

1। प्रतिमान विकास: प्रक्रिया-उन्मुख बनाम वस्तु-उन्मुख प्रोग्रामिंग

वास्तुशिल्प प्रतिमान
ए. प्रक्रिया-उन्मुख प्रोग्रामिंग (पीओपी) की सीमाएँ:

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

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

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (जावा, सी++, पायथन और सी# द्वारा उदाहरण दिया गया) सॉफ्टवेयर आर्किटेक्चर के केंद्र में DATA रखकर इस दर्शन को उल्टा कर देता है। OOP में, सॉफ़्टवेयर का निर्माण स्वायत्त संस्थाओं के एक सहयोगी नेटवर्क के रूप में किया जाता है जिसे Objects.

कहा जाता है।
§53चीजों को करने पर (एल्गोरिदम, कार्य और प्रक्रियात्मक तर्क) पर ध्यान केंद्रित करता है। §57डेटा और संस्थाओं पर ध्यान केंद्रित करता है जिनमें हेरफेर किया जा रहा है। §103इनहेरिटेंस और कक्षा पुस्तकालयों के माध्यम से उच्च पुन: प्रयोज्य।
मूल्यांकन पैरामीटर प्रक्रिया-उन्मुख प्रोग्रामिंग (पीओपी) ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी)
प्राथमिक जोर
प्रोग्राम डीकंपोजिशन प्रोग्राम को सबरूटीन, मॉड्यूल या फ़ंक्शंस में विभाजित किया गया है। कार्यक्रमों को वर्गों और संचार वस्तुओं में विभाजित किया गया है।
डेटा सुरक्षा और छिपाना डेटा कार्यों के बीच स्वतंत्र रूप से चलता है; कोई अंतर्निहित डेटा छिपाने की व्यवस्था नहीं। डेटा निजी एक्सेस विनिर्देशकों (एनकैप्सुलेशन) का उपयोग करके कक्षाओं के अंदर छिपा हुआ है।
डिज़ाइन दृष्टिकोण सख्त टॉप-डाउन दृष्टिकोण (मुख्य समस्या → सबरूटीन्स). नीचे-ऊपर दृष्टिकोण (वर्ग/वस्तुएँ → एकीकृत प्रणाली).
कोड पुन: प्रयोज्य फ़ंक्शन कॉल के माध्यम से सीमित पुन: प्रयोज्यता; कोड दोहराव की संभावना.
वास्तविक-विश्व मॉडलिंग वास्तविक दुनिया की वस्तुओं को कार्यों में मैप करना कठिन और अप्राकृतिक। वास्तविक दुनिया की इकाइयों की स्थिति और व्यवहार को निर्बाध रूप से मॉडल करता है।

2. ओओपी के चार प्रमुख स्तंभ

कोर सिद्धांत
1. डेटा अमूर्तन (सरलता का सिद्धांत):

एब्स्ट्रैक्शन पृष्ठभूमि विवरण या जटिल आंतरिक कामकाज को शामिल किए बिना किसी इकाई की आवश्यक विशेषताओं का प्रतिनिधित्व करने का कार्य है। यह उपयोगकर्ता से अनावश्यक जटिलता को छुपाता है।

  • वास्तविक-विश्व सादृश्य: कार चलाना। ड्राइवर केवल स्टीयरिंग व्हील, एक्सेलेरेटर, ब्रेक पेडल और गियर लीवर (सार इंटरफ़ेस) के साथ इंटरैक्ट करता है। ड्राइवर को वाहन चलाने के लिए आंतरिक दहन यांत्रिकी, ईंधन इंजेक्शन समय, या हाइड्रोलिक ब्रेक द्रव द्रव-गतिकी को समझने की आवश्यकता नहीं है।
  • जावा कार्यान्वयन: सार वर्ग, इंटरफेस, और सार्वजनिक विधि हेडर यह उजागर करते हैं कि क्या एक वस्तु छिपाते समय कैसे यह करती है।
2. एनकैप्सुलेशन और डेटा छिपाना (सुरक्षात्मक कैप्सूल):

Encapsulation वह तंत्र है जो डेटा सदस्यों (फ़ील्ड/वेरिएबल) और सदस्य विधियों (फ़ंक्शन) को एक साथ जोड़ता है, उन्हें एक एकल सुरक्षात्मक कंटेनर में लपेटता है जिसे Class कहा जाता है। यह आंतरिक चरों तक अनधिकृत सीधी पहुंच को रोककर डेटा छिपाना लागू करता है।

  • वास्तविक-विश्व सादृश्य: एक औषधीय कैप्सूल। सक्रिय अवयवों को एक जिलेटिन शेल के अंदर सील कर दिया जाता है, जो बाहरी संदूषण को रोकता है और दवा को सुरक्षित रूप से वितरित करता है।
  • जावा कार्यान्वयन: वेरिएबल्स को निजी घोषित करना और सत्यापन तर्क के साथ पहुंच को विनियमित करने के लिए सार्वजनिक गेटर और सेटर तरीके प्रदान करना।
3. वंशानुक्रम (वास्तुशिल्प परिवार वृक्ष):

इनहेरिटेंस वह तंत्र है जिसके द्वारा एक वर्ग (बाल / व्युत्पन्न / उपवर्ग) मौजूदा वर्ग (पैरेंट / बेस / सुपरक्लास) के गुणों और व्यवहारों को प्राप्त करता है। यह पदानुक्रमित "IS-A" संबंध को मॉडल करता है।

  • वास्तविक-विश्व सादृश्य: जैविक आनुवंशिकता। एक मानव बच्चा अद्वितीय व्यक्तिगत कौशल विकसित करते समय अपने जैविक माता-पिता से चेहरे की विशेषताएं, आंखों का रंग और आनुवंशिक गुण प्राप्त करता है।
  • मुख्य लाभ: अनावश्यक कोड दोहराव को समाप्त करता है; extends कीवर्ड के माध्यम से सॉफ़्टवेयर पुन: प्रयोज्यता और विस्तारशीलता की सुविधा प्रदान करता है।
4. बहुरूपता (एकल इंटरफ़ेस की एकाधिक अभिव्यक्तियाँ):

बहुरूपता (ग्रीक से poly = अनेक, morf = रूप) विभिन्न संदर्भों में विभिन्न व्यवहार प्रदर्शित करने के लिए एक ऑपरेशन, विधि या ऑपरेटर की क्षमता है।

  • संकलन-समय बहुरूपता (स्टेटिक बाइंडिंग): मेथड ओवरलोडिंग, जहां एक ही वर्ग में कई विधियां समान नाम साझा करती हैं लेकिन अलग-अलग पैरामीटर हस्ताक्षर (विभिन्न संख्या, प्रकार, या तर्कों का क्रम) रखती हैं।
  • रन-टाइम पॉलीमोर्फिज्म (डायनामिक बाइंडिंग): मेथड ओवरराइडिंग, जहां एक उपवर्ग अपने सुपरक्लास में पहले से ही घोषित विधि का एक विशिष्ट कार्यान्वयन प्रदान करता है।

3. जावा निष्पादन पाइपलाइन: कंपाइलर, बाइटकोड और JVM

निष्पादन इंजन
ए. दो-चरणीय संकलन एवं व्याख्या पाइपलाइन:

विशुद्ध रूप से संकलित भाषाओं (जैसे कि C/C++, जो सीधे हार्डवेयर-विशिष्ट मशीन कोड .exe पर संकलित होती है) या विशुद्ध रूप से व्याख्या की गई भाषाओं (जैसे जावास्क्रिप्ट/पायथन) के विपरीत, जावा एक सरल हाइब्रिड दो-चरण निष्पादन आर्किटेक्चर:

को नियोजित करता है।
  1. चरण 1: javac के माध्यम से संकलन (स्रोत कोड से बाइटकोड):
    डेवलपर मानव-पठनीय जावा स्रोत कोड लिखता है और इसे .java एक्सटेंशन (उदाहरण के लिए, Student.java) के साथ सहेजता है। जावा कंपाइलर (javac) इस फ़ाइल को संकलित करता है। मशीन-विशिष्ट बाइनरी मशीन कोड उत्पन्न करने के बजाय, यह Bytecode नामक अत्यधिक अनुकूलित, आर्किटेक्चर-तटस्थ मध्यवर्ती निर्देश उत्पन्न करता है, जिसे .class एक्सटेंशन (उदाहरण के लिए, Student.class) के साथ सहेजा जाता है।
  2. चरण 2: java (मूल मशीन कोड के लिए बाइटकोड) के माध्यम से व्याख्या और जेआईटी संकलन:
    Java वर्चुअल मशीन (JVM) होस्ट कंप्यूटर पर स्थित है। जब प्रोग्राम चलता है (java student), तो JVM .class फ़ाइल को लोड करता है, बाइटकोड अखंडता की पुष्टि करता है, और इसे अंतर्निहित ऑपरेटिंग सिस्टम के लिए विशिष्ट मूल मशीन कोड (x86, ARM, Apple सिलिकॉन) में व्याख्या करता है।
बी. प्लेटफ़ॉर्म इंडिपेंडेंस मैजिक का पुनर्निर्माण:

जावा प्रोग्राम प्लेटफ़ॉर्म इंडिपेंडेंट ("एक बार लिखें, कहीं भी चलाएं") हैं, लेकिन जेवीएम स्वयं प्लेटफ़ॉर्म डिपेंडेंट है! एक विंडोज़ जेवीएम विंडोज़ हार्डवेयर पर निष्पादित होता है; एक macOS ARM JVM Apple सिलिकॉन पर निष्पादित होता है; एक उबंटू लिनक्स जेवीएम लिनक्स सर्वर पर निष्पादित होता है। हालाँकि, क्योंकि सभी JVM समान मानक विनिर्देश का पालन करते हैं, विंडोज़ लैपटॉप पर उत्पन्न एक एकल .class बाइटकोड फ़ाइल बिना पुनर्संकलन के Linux, macOS, या सोलारिस सर्वर पर समान रूप से चलती है।

C. जस्ट-इन-टाइम (JIT) कंपाइलर:

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

4. जेडीके बनाम जेआरई बनाम जेवीएम: आर्किटेक्चरल टियर

सिस्टम घटक
ए. जावा के तीन संकेंद्रित वृत्त:
घटक पूर्ण रूप एवं परिभाषा इसमें क्या शामिल है लक्षित दर्शक
JVM जावा वर्चुअल मशीन: एक अमूर्त सॉफ्टवेयर निष्पादन इंजन जो बाइटकोड को लोड, सत्यापित और निष्पादित करता है। क्लास लोडर, बाइटकोड सत्यापनकर्ता, निष्पादन इंजन (दुभाषिया + जेआईटी कंपाइलर), कचरा संग्रहकर्ता, रनटाइम मेमोरी क्षेत्र (हीप, स्टैक, विधि क्षेत्र)। जेआरई और जेडीके के भीतर आंतरिक रूप से एम्बेडेड; अंतिम-उपयोगकर्ताओं के लिए अदृश्य.
JRE जावा रनटाइम एनवायरनमेंट: संकलित जावा अनुप्रयोगों को निष्पादित / चलाने के लिए सख्ती से आवश्यक सॉफ्टवेयर पैकेज। JVM + कोर क्लास लाइब्रेरी (rt.jar, java.lang, java.util, java.io) + सहायक कॉन्फ़िगरेशन फ़ाइलें। (इसमें कंपाइलर या डिबगर्स शामिल नहीं हैं). अंतिम-उपयोगकर्ता जो केवल अपने डिवाइस पर जावा एप्लिकेशन चलाना चाहते हैं।
JDK जावा डेवलपमेंट किट: जावा प्रोग्रामों को विकसित, संकलित और चलाने के लिए आवश्यक संपूर्ण सॉफ्टवेयर विकास वातावरण। JRE + डेवलपमेंट टूल्स (javac कंपाइलर, java लॉन्चर, javadoc डॉक्यूमेंटेशन जेनरेटर, jdb डिबगर, jar पैकेजर). सॉफ़्टवेयर प्रोग्रामर, इंजीनियर, और कोड लिखने वाले छात्र।

आर्किटेक्चरल फॉर्मूला: जेडीके = जेआरई + डेवलपमेंट टूल्स (जावैक, जेडीबी, जार) और जेआरई = जेवीएम + कोर क्लास लाइब्रेरी

5. जावा की मुख्य विशेषताएं: सन माइक्रोसिस्टम्स व्हाइटपेपर

भाषा विशेषताएँ
आईसीएसई द्वारा अनिवार्य प्राथमिक विशेषताएं:
  • 1. सरल: जावा ने जटिल, त्रुटि-प्रवण C++ सुविधाओं जैसे स्पष्ट पॉइंटर्स, पॉइंटर अंकगणित, ऑपरेटर ओवरलोडिंग, कक्षाओं की एकाधिक विरासत, और मैन्युअल मेमोरी डीलोकेशन को समाप्त कर दिया।
  • 2. ऑब्जेक्ट-ओरिएंटेड: जावा में लगभग हर चीज़ एक ऑब्जेक्ट है (8 आदिम डेटा प्रकारों को छोड़कर)। कक्षाएँ सभी तर्कों को परिभाषित करती हैं; वैश्विक चर और कक्षाओं के बाहर स्टैंडअलोन फ़ंक्शन सख्त वर्जित हैं।
  • 3. प्लेटफ़ॉर्म इंडिपेंडेंट (WORA): बाइटकोड एक ऑपरेटिंग सिस्टम पर लिखे और संकलित किए गए एप्लिकेशन को स्थापित JVM के साथ किसी अन्य ओएस पर निर्बाध रूप से चलाने में सक्षम बनाता है।
  • 4. मजबूत: जावा संकलन-समय और रनटाइम पर मजबूत प्रकार की जांच लागू करता है, क्रैश को रोकने के लिए कठोर अपवाद हैंडलिंग प्रदान करता है, और स्वचालित कचरा संग्रह.
  • के माध्यम से मेमोरी लीक को समाप्त करता है
  • 5. सुरक्षित: जावा प्रोग्राम जेवीएम द्वारा प्रबंधित एक सुरक्षित रनटाइम सैंडबॉक्स के अंदर निष्पादित होते हैं। पॉइंटर्स को हटा दिया जाता है (मेमोरी हैकिंग को रोकना), और बाइटकोड सत्यापनकर्ता यह सुनिश्चित करता है कि डाउनलोड किए गए नेटवर्क कोड में कोई दुर्भावनापूर्ण मेमोरी भ्रष्टाचार नहीं है।
  • 6. मल्टीथ्रेडेड: जावा में मल्टी-कोर सीपीयू आर्किटेक्चर को अनुकूलित करते हुए कई प्रोग्राम थ्रेड्स के समवर्ती निष्पादन के लिए अंतर्निहित भाषा समर्थन है।

6. जेवीएम के आंतरिक यांत्रिकी: क्लासलोडर और मेमोरी प्रबंधन

JVM आंतरिक
ए. जावा वर्चुअल मशीन के तीन सबसिस्टम:
  1. 1. क्लासलोडर सबसिस्टम: बाइनरी .class फ़ाइलों को मेमोरी में गतिशील रूप से लोड करने, लिंक करने और आरंभ करने के लिए जिम्मेदार है। यह तीन चरणों में संचालित होता है:
    • लोडिंग: बूटस्ट्रैप, एक्सटेंशन और एप्लिकेशन क्लासलोडर्स का उपयोग करके प्रकारों के लिए बाइनरी डेटा ढूंढता है और आयात करता है।
    • लिंकिंग: सत्यापन करता है (सुनिश्चित करता है कि बाइटकोड सुरक्षा बाधाओं या भ्रष्ट मेमोरी का उल्लंघन नहीं करता है), तैयारी (स्थिर क्षेत्रों के लिए मेमोरी आवंटित करना), और रिज़ॉल्यूशन (प्रत्यक्ष मेमोरी पॉइंटर्स के साथ प्रतीकात्मक संदर्भों को बदलना)।
    • प्रारंभीकरण: स्थिर प्रारंभकर्ताओं और स्थिर ब्लॉकों को निष्पादित करता है।
  2. 2. रनटाइम डेटा क्षेत्र (JVM मेमोरी लेआउट):
    • विधि क्षेत्र: साझा भंडारण जिसमें वर्ग-स्तरीय संरचनाएं, रनटाइम स्थिर पूल, स्थिर चर और विधि बाइटकोड शामिल हैं।
    • हीप क्षेत्र: साझा रनटाइम डेटा पूल जहां सभी क्लास इंस्टेंस (ऑब्जेक्ट्स) और एरे गतिशील रूप से आवंटित किए जाते हैं।
    • जावा थ्रेड स्टैक: थ्रेड-प्राइवेट मेमोरी जिसमें प्रत्येक विधि आह्वान पर बनाए गए स्टैक फ्रेम होते हैं, जो स्थानीय चर और मध्यवर्ती गणनाओं को संग्रहीत करते हैं।
    • प्रोग्राम काउंटर (पीसी) रजिस्टर: वर्तमान में थ्रेड द्वारा निष्पादित किए जा रहे जेवीएम निर्देश का भौतिक पता संग्रहीत करता है।
  3. 3. निष्पादन इंजन और कचरा संग्रहकर्ता: इसमें इंटरप्रेटर, जेआईटी कंपाइलर (जो हॉट-स्पॉट बाइटकोड को मूल असेंबली कोड में अनुवादित करता है), और स्वचालित कचरा कलेक्टर (जो ऑब्जेक्ट की पहुंच को ट्रैक करता है और गैर-संदर्भित ढेर मेमोरी को मुक्त करता है) शामिल है।

सामान्य गलतियाँ एवं परीक्षक के जाल (Examiner Traps)

सामान्य भ्रम / गलत उत्तर

समानता तुलना (==) के साथ असाइनमेंट (=) को भ्रमित करना या अमान्य पहचानकर्ताओं का उपयोग करना।

सही वैज्ञानिक तथ्य

तुलना के लिए == का उपयोग करें और सत्यापित करें कि पहचानकर्ता अनुसरण करते हैं। मानक जावा नामकरण परंपराएं।

सामान्य भ्रम / गलत उत्तर

स्विच-केस में ब्रेक को छोड़ना या स्कैनर में बिना उपयोग किए गए न्यूलाइन बफर को छोड़ना।

सही वैज्ञानिक तथ्य

फ़ॉल-थ्रू को रोकने के लिए हमेशा केस ब्लॉक में ब्रेक को शामिल करें और नेक्स्टलाइन() से पहले बफर को फ्लश करें।

Java OOP आर्किटेक्चर: 4 स्तंभ और संकलन पाइपलाइन

Java OOP Architecture: 4 Pillars & Compilation Pipeline THE FOUR PILLARS OF OOP 1. DATA ABSTRACTION • Represents essential features; hides background complexity Analogy: Car accelerator/brake vs internal combustion mechanics 2. ENCAPSULATION & DATA HIDING • Binds data members & methods into a single class unit Analogy: Sealed medical capsule protecting internal ingredients 3. INHERITANCE (Code Reusability) • Subclass inherits state & behavior from Superclass (IS-A) Analogy: Child inheriting biological traits from parents 4. POLYMORPHISM (Many Forms) • Method Overloading (Compile-time) & Overriding (Runtime) Analogy: Single man acting as father, teacher, and driver JAVA TWO-STAGE EXECUTION PIPELINE Source Code Student.java javac Bytecode (.class) Platform Neutral JAVA VIRTUAL MACHINE (JVM) Windows JVM Translates to Win x86 Native macOS JVM Translates to ARM64 Native Linux JVM Translates to Linux Native JDK = JRE + Tools (javac, debugger) JRE = JVM + Java Core Class Libraries CORE MANTRA: Java is Platform Independent (WORA), but the JVM is Platform Dependent!

अध्याय का सार संक्षेप एवं 10 मुख्य निष्कर्ष

मुख्य बिंदु 1
प्रतिमान भेद: प्रक्रिया-उन्मुख प्रोग्रामिंग (POP) कमजोर वैश्विक डेटा वाले कार्यों पर ध्यान केंद्रित करता है, जबकि OOP डेटा को लपेटता है और विधियां वस्तुओं के अंदर सुरक्षित रूप से।
मुख्य बिंदु 2
डेटा एब्स्ट्रैक्शन: जटिल पृष्ठभूमि कार्यान्वयन को पूरी तरह से छिपाते हुए उपयोगकर्ता के लिए केवल आवश्यक, प्रासंगिक सुविधाओं को उजागर करता है।
मुख्य बिंदु 3
एनकैप्सुलेशन: एक वर्ग के अंदर डेटा सदस्यों और सदस्य विधियों का सुरक्षात्मक बंधन, अनधिकृत बाहरी छेड़छाड़ (डेटा छिपाना) को रोकता है।
मुख्य बिंदु 4
इनहेरिटेंस: वह तंत्र जिसके द्वारा एक उपवर्ग एक सुपरक्लास से विशेषताओं और विधियों को प्राप्त करता है, कोड पुन: प्रयोज्य को बढ़ावा देता है और पदानुक्रमित डिज़ाइन।
मुख्य बिंदु 5
बहुरूपता: कई व्यवहारों को प्रदर्शित करने की एक इकाई की क्षमता, संकलन-समय विधि ओवरलोडिंग और रनटाइम विधि ओवरराइडिंग द्वारा चित्रित।
मुख्य बिंदु 6
दो-चरण निष्पादन: जावा स्रोत कोड (.java) को javac द्वारा आर्किटेक्चर-न्यूट्रल बाइटकोड (.class) में संकलित किया जाता है, जिसे बाद में JVM द्वारा व्याख्या/निष्पादित किया जाता है।
मुख्य बिंदु 7
WORA दर्शन: "एक बार लिखें, कहीं भी चलाएं" - जावा प्रोग्राम स्रोत कोड पुनर्संकलन के बिना उचित JVM वाले किसी भी हार्डवेयर पर चलते हैं।
मुख्य बिंदु 8
जेवीएम निर्भरता: जावा एप्लिकेशन और बाइटकोड प्लेटफ़ॉर्म-स्वतंत्र हैं, लेकिन जेवीएम सॉफ़्टवेयर स्वयं प्लेटफ़ॉर्म-निर्भर है।
मुख्य बिंदु 9
जेडीके बनाम जेआरई बनाम जेवीएम: जेडीके (विकास उपकरण + जेआरई) > जेआरई (जेवीएम + क्लास लाइब्रेरी) > जेवीएम (वर्चुअल निष्पादन इंजन)।
मुख्य बिंदु 10
जेआईटी अनुकूलन: जस्ट-इन-टाइम (जेआईटी) कंपाइलर निष्पादन गति को बढ़ावा देने के लिए अक्सर निष्पादित बाइटकोड हॉट-स्पॉट को मूल मशीन कोड में संकलित करता है।

स्व-मूल्यांकन अभ्यास (Check Your Understanding)

मूल वैचारिक स्पष्टता की जांच के लिए नैदानिक प्रश्न। पहले स्वयं हल करें, फिर उत्तर देखें।

1
डेटा प्रबंधन के संबंध में प्रक्रिया-उन्मुख प्रोग्रामिंग (पीओपी) और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) के बीच प्राथमिक अंतर क्या है?
उत्तर एवं व्याख्या देखें
उत्तर: पीओपी में, डेटा विभिन्न कार्यों में स्वतंत्र रूप से चलता है और विश्व स्तर पर घोषित किया जाता है, जिससे यह आकस्मिक संशोधन के प्रति संवेदनशील हो जाता है। ओओपी में, डेटा को एक वर्ग के भीतर तरीकों से निकटता से बांधा जाता है और एनकैप्सुलेशन और डेटा छिपाने के माध्यम से बाहरी हस्तक्षेप से संरक्षित किया जाता है।
आईसीएसई कंप्यूटर एप्लीकेशन अंकन योजना
2
रोजमर्रा की वास्तविक दुनिया के उदाहरण के साथ डेटा एब्स्ट्रैक्शन की अवधारणा को समझाएं।
उत्तर एवं व्याख्या देखें
उत्तर: अमूर्तन का अर्थ है पृष्ठभूमि परिचालन विवरणों को छिपाते हुए आवश्यक विशेषताओं को प्रदर्शित करना। एक उदाहरण कार चलाना है: चालक ईंधन के रासायनिक दहन या ट्रांसमिशन यांत्रिकी को समझने की आवश्यकता के बिना स्टीयरिंग व्हील और पैडल (इंटरफ़ेस) का उपयोग करता है।
आईसीएसई कंप्यूटर एप्लीकेशन अंकन योजना
3
जावा को "प्लेटफ़ॉर्म इंडिपेंडेंट" भाषा क्यों कहा जाता है?
उत्तर एवं व्याख्या देखें
उत्तर: जावा प्लेटफ़ॉर्म स्वतंत्र है क्योंकि इसका स्रोत कोड एक मध्यवर्ती, आर्किटेक्चर-न्यूट्रल बाइटकोड (.क्लास) में संकलित है जो किसी भी कंप्यूटर आर्किटेक्चर पर स्थापित जावा वर्चुअल मशीन (जेवीएम) के साथ पुनर्संकलन की आवश्यकता के बिना निष्पादित कर सकता है।
आईसीएसई कंप्यूटर एप्लीकेशन अंकन योजना
4
JDK, JRE और JVM के बीच संबंध बताएं।
उत्तर एवं व्याख्या देखें
उत्तर: जेवीएम वर्चुअल इंजन है जो बाइटकोड निष्पादित करता है। JRE में जावा ऐप्स चलाने के लिए आवश्यक कोर क्लास लाइब्रेरी के साथ-साथ JVM भी शामिल है। जेडीके संपूर्ण विकास किट है जिसमें जेआरई के साथ-साथ जेवैक और डीबगर (जेडीके = जेआरई + टूल्स; जेआरई = जेवीएम + लाइब्रेरीज़) जैसे विकास उपकरण शामिल हैं।
आईसीएसई कंप्यूटर एप्लीकेशन अंकन योजना
5
बाइटकोड क्या है, और कौन सा जावा टूल इसे उत्पन्न करता है?
उत्तर एवं व्याख्या देखें
उत्तर: बाइटकोड मानव-पठनीय जावा स्रोत कोड (.java) से जावा कंपाइलर (javac) द्वारा उत्पन्न एक मध्यवर्ती, वास्तुकला-तटस्थ निर्देश सेट है। इसे .class फ़ाइलों में सहेजा जाता है और JVM द्वारा निष्पादित किया जाता है।
आईसीएसई कंप्यूटर एप्लीकेशन अंकन योजना
6
एनकैप्सुलेशन जावा क्लास में डेटा छिपाने को कैसे बढ़ावा देता है?
उत्तर एवं व्याख्या देखें
उत्तर: एनकैप्सुलेशन आंतरिक इंस्टेंस वेरिएबल्स को निजी घोषित करके सीधे बाहरी पहुंच को प्रतिबंधित करता है। बाहरी कोड केवल सार्वजनिक गेटर और सेटर विधियों के माध्यम से वेरिएबल्स के साथ इंटरैक्ट कर सकता है जो सत्यापन नियमों को लागू करते हैं।
ICSE कंप्यूटर एप्लीकेशन मार्किंग स्कीम
7
JVM के अंदर जस्ट-इन-टाइम (JIT) कंपाइलर का कार्य क्या है?
उत्तर एवं व्याख्या देखें
उत्तर: JIT कंपाइलर बार-बार निष्पादित बाइटकोड अनुभागों ("हॉट स्पॉट") की पहचान करके और उन्हें सीधे मूल हार्डवेयर मशीन कोड में संकलित करके, उन्हें कैशिंग करके निष्पादन में तेजी लाता है। दोहरावदार व्याख्या से बचें।
ICSE कंप्यूटर एप्लीकेशन मार्किंग स्कीम
8
क्या जावा वर्चुअल मशीन (JVM) प्लेटफॉर्म स्वतंत्र है? अपने उत्तर का औचित्य सिद्ध करें।
उत्तर एवं व्याख्या देखें
उत्तर: नहीं, JVM प्लेटफ़ॉर्म पर निर्भर है। विभिन्न ऑपरेटिंग सिस्टम को होस्ट ऑपरेटिंग सिस्टम के मूल सिस्टम कॉल के साथ संचार करने के लिए अलग-अलग जेवीएम बायनेरिज़ (उदाहरण के लिए, विंडोज जेवीएम, लिनक्स जेवीएम, मैकओएस एआरएम जेवीएम) की आवश्यकता होती है।
ICSE कंप्यूटर एप्लीकेशन मार्किंग स्कीम
अध्याय का अध्ययन पूर्ण हुआ?
अभ्यास के लिए तैयार?

ऑनलाइन CBT टेस्ट देकर तैयारी का मूल्यांकन करें

झारखण्ड बोर्ड परीक्षा पैटर्न पर आधारित बहुविकल्पीय प्रश्नों का ऑनलाइन टेस्ट दें। तुरंत परिणाम, समय विश्लेषण और प्रत्येक प्रश्न का विस्तृत हल प्राप्त करें।

AI अध्ययन मित्र

त्वरित शंका समाधान

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग अवधारणाओं का परिचय (Introduction to Object Oriented Programming concepts) में कोई संदेह या प्रश्न है? हमारे AI अध्ययन मित्र से तुरंत समझें।