Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java प्रोग्राम निष्पादित करने में शामिल विभिन्न चरण क्या हैं?


Java प्रोग्राम निष्पादन 5 प्रमुख चरणों का पालन करता है:

  1. Edit (संपादन) - यहां प्रोग्रामर एक साधारण एडिटर या नोटपैड एप्लिकेशन का उपयोग करके Java प्रोग्राम लिखता है और अंत में इसे .java एक्सटेंशन देता है।
  2. Compile (कंपाइल) - इस चरण में, प्रोग्रामर javac कमांड देता है और .java फाइल्स को बाइटकोड में परिवर्तित किया जाता है जो Java Virtual Machine द्वारा समझी जाने वाली भाषा है (यही Java को प्लेटफॉर्म-स्वतंत्र भाषा बनाता है)। कोई भी कंपाइल-टाइम त्रुटियां इस चरण में उठाई जाती हैं।
  3. Load (लोड) - प्रोग्राम फिर मेमोरी में लोड होता है। यह क्लास लोडर द्वारा किया जाता है जो बाइटकोड युक्त .class फाइल्स लेता है और इसे मेमोरी में स्टोर करता है। .class फाइल आपकी हार्ड डिस्क या नेटवर्क से भी लोड की जा सकती है।
  4. Verify (सत्यापन) - बाइटकोड वेरिफायर जांचता है कि लोड किया गया बाइटकोड वैध है और Java सुरक्षा प्रतिबंधों का उल्लंघन नहीं करता।
  5. Execute (निष्पादन) - JVM प्रोग्राम को एक बार में एक बाइटकोड इंटरप्रेट करता है और प्रोग्राम चलाता है।

विस्तृत फ्लो

┌─────────────┐
│  Source     │  Edit: .java फाइल बनाएं
│  Code       │
└──────┬──────┘
       │ javac
       ▼
┌─────────────┐
│  Bytecode   │  Compile: .class फाइल (प्लेटफॉर्म-स्वतंत्र)
│  (.class)   │
└──────┬──────┘
       │ ClassLoader
       ▼
┌─────────────┐
│  Runtime    │  Load: मेटास्पेस/हीप में क्लास डेटा
│  Data Area  │
└──────┬──────┘
       │ Bytecode Verifier
       ▼
┌─────────────┐
│  Verified   │  Verify: सुरक्षा, टाइप सेफ्टी, स्टैक अंडरफ्लो जांच
│  Bytecode   │
└──────┬──────┘
       │ JVM (Interpreter/JIT)
       ▼
┌─────────────┐
│  Execution  │  Execute: मशीन कोड में अनुवाद, निष्पादन
│  Result     │
└─────────────┘

प्रत्येक चरण का विवरण

1. Edit (संपादन)

  • सोर्स कोड लिखना: .java फाइल
  • कोई भी टेक्स्ट एडिटर: Notepad, VS Code, IntelliJ, Eclipse, vim
  • फाइल नाम = पब्लिक क्लास नाम (यदि पब्लिक क्लास है)

2. Compile (कंपाइल)

  • javac SourceFile.java
  • सोर्स कोड → बाइटकोड (.class)
  • प्लेटफॉर्म-स्वतंत्र मध्यवर्ती प्रतिनिधित्व
  • कंपाइल-टाइम एरर्स: सिंटैक्स, टाइप चेकिंग, अनिर्धारित सिंबल्स
  • javac स्वयं Java में लिखा गया है (self-hosting compiler)

3. Load (लोड)

  • ClassLoader सबसिस्टम जिम्मेदार
  • पदानुक्रम: Bootstrap → Extension → Application (System) ClassLoader
  • .class फाइल्स → मेटास्पेस (Method Area) में मेटाडेटा, हीप में ऑब्जेक्ट्स
  • लेजी लोडिंग: क्लास पहली बार उपयोग होने पर लोड होती है

4. Verify (सत्यापन)

  • Bytecode Verifier सुरक्षा सुनिश्चित करता है
  • जांच: स्टैक अंडरफ्लो/ओवरफ्लो नहीं, टाइप सेफ्टी, एक्सेस कंट्रोल, फाइनल क्लास/मेथड नहीं ओवरराइड
  • संदिग्ध कोड रिजेक्ट होता है

5. Execute (निष्पादन)

  • JVM Execution Engine:
    • Interpreter: बाइटकोड को लाइन-बाय-लाइन इंटरप्रेट करता है (धीमा)
    • JIT Compiler: हॉट कोड को नेटिव मशीन कोड में कंपाइल करता है (तेज़)
    • Garbage Collector: मेमोरी प्रबंधन
  • मेथड एरिया, हीप, स्टैक, PC रजिस्टर, नेटिव मेथड स्टैक

Java प्लेटफॉर्म इंडिपेंडेंस कैसे प्राप्त करता है?

Write Once, Run Anywhere (WORA)

Source (.java) 
    │ javac (प्लेटफॉर्म-विशिष्ट कंपाइलर)
    ▼
Bytecode (.class) ← प्लेटफॉर्म-स्वतंत्र
    │ JVM (प्लेटफॉर्म-विशिष्ट)
    ▼
Machine Code → OS/Hardware

निष्कर्ष: Java निष्पादन 5-चरणीय प्रक्रिया है: संपादन → कंपाइल → लोड → सत्यापन → निष्पादन। बाइटकोड और JVM की भूमिका Java को प्लेटफॉर्म-स्वतंत्र बनाती है।

  1. C में टोकन क्या हैं? C में टोकन क्या हैं?

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

  1. C प्रोग्राम को मशीन कोड में बदलने के 4 चरण C प्रोग्राम को मशीन कोड में बदलने के 4 चरण

    प्रोग्राम बनाने और चलाने की प्रक्रिया C स्रोत कोड से निष्पादन योग्य मशीन कोड तक 4 मुख्य चरण होते हैं: लेखन और संपादन (Writing & Editing) संकलन (Compilation) लिंकिंग (Linking) निष्पादन (Execution) चरण 1: लेखन और संपादन टेक्स्ट एडिटर (VS Code, Vim, Notepad++) में कोड लिखें फाइल सहेजें: .c एक्सटे

  1. जावा 9 में JShell में विभिन्न /edit कमांड्स जावा 9 में JShell में विभिन्न /edit कमांड्स

    JShell जावा 9 में पेश किया गया एक कमांड-लाइन टूल है जो main() मेथड के बिना डिक्लेरेशन्स, स्टेटमेंट्स, और एक्सप्रेशन्स का मूल्यांकन करता है। JShell एक टेक्स्ट एडिटर सेट कर सकता है जिसे JShell Edit Pad कहा जाता है, जो कोड को बहुत आसानी से संशोधित करने की अनुमति देता है, और इसे /edit कमांड का उपयोग करक