How Java Program Works Internally: जब Java के किसी Program को Compile किया जाता है तब Java का Program पूरी तरह से Machine Language में Convert नहीं होता है बल्कि एक Intermediate Language में Convert होता है, जिसे Java Bytecodes कहा जाता है। ये Codes Platform Independent होते हैं, इसलिए इन्हें किसी भी Operating System व किसी भी Processor पर चलाया जा सकता है। Java के Program की Compilation केवल एक ही बार होती है लेकिन जितनी बार भी Java के Program को चलाया जाता है, हर बार उस Program का Interpretation होता है। इसे हम निम्न चित्र द्वारा समझ सकते हैं-
Java Bytecodes को हम Java Virtual Machine (Java VM) के लिए Machine Codes मान सकते हैं। हर Java Interpreter, चाहे वह Java Development Tool हो या कोई Browser जो कि Java Applets को Run करता हो, Java Virtual Machine का ही Implementation है। Java Virtual Machine को Hardware में भी Implement किया जा सकता है, जिसका परिणाम आज के Mobile System Software हैं।
Java Bytecodes हमें ये सुविधा देते हैं कि हम Java के Program को एक बार Compile करें और कहीं भी Run करें। हम किसी Java Program को किसी भी उस Computer पर Compile कर सकते हैं जिस पर Java Compiler हो। फिर उस Java Program के Bytecodes को किसी भी उस Computer पर Run किया जा सकता है जिस पर Java VM हो। उदाहरण के लिए एक ही Java Program Windows, OS/2 MacOS NT, Macintosh आदि विभिन्न Platform पर Execute हो सकते हैं।
Java Platform
Platform एक एक ऐसा Software या Hardware Environment होता है जिसमें कोई Program Run होता है। Java Platform कई अन्य Platforms से अलग है। Java Platform एक Software Platform है, जो सभी अन्य Hardware Based Platform के Top पर यानी ऊपर Run होता है। ज्यादातर अन्य Platforms Hardware व Operating System का Combination होते हैं। Java Platform के दो Components हैं।
- पहला है Java Virtual Machine (Java VM) जिसके बारे में हम जान चुके हैं। ये Java Platform का Base या आधार है और विभिन्न Hardware Base Platform के ऊपर रहता है।
- दूसरा होता है Java Application Programming Interface (Java API) जिसके बारे में हम अब जानेंगे।
Java API, Ready Made Software Components का एक बहुत बडा Collection है जो कि Programmer को GUI (Graphical User Interface) जैसी कई उपयोगी क्षमताएं प्रदान करता है। Java API को Related Components की Libraries के रूप में Group कर दिया गया है। इन विभिन्न Related Components के Group को ही Packages कहते हैं। जो कि कुछ हद तक C/C++ की Header Files के समान ही होता है, लेकिन C की Header File एक प्रकार से Functions का Collection होती है, जबकि Java का Package, एक प्रकार से Classes का Collection होता है। एक Java Program को हम निम्न चित्रानुसार दर्शा सकते हैं-
जब एक Java Program को किसी Computer पर Execute किया जाता है तो Java Program व Hardware Based Platform के बीच Java API व Java Virtual Machine की Layer होती हैं जो Java के Program को Hardware Dependencies से अलग करती हैं। यानी इन दोनों की वजह से Java का कोई Program किसी भी Computer के Hardware पर निर्भर नहीं होता है। एक Platform Independent Environment के रूप में Java का Program अन्य Native Codes Programs की तुलना में कुछ धीमा होता है। लेकिन फिर भी अच्छे Compilers, Java के साथ अच्छी तरह से Tune होने वाले Interpreters और Bytecodes Compilers की वजह से Java की Performance को Native Code की Performance के आस पास लाया जा सकता है और वो भी जावा की सभी विशेषताओं के साथ।
Java Programs का सबसे अधिक जाना पहचाना यदि कोई रूप है तो वह Java Applets का है। एक Applet भी एक Java Program ही होता है लेकिन इसकी विशेषता ये है कि ये किसी Java Enabled Browser जैसे कि Internet Explorer, Netscape Navigator, Google Chrome, Opera, FireFox आदि में Run होता है, स्वतंत्र रूप से ये Run नहीं हो सकता। जबकि Java Application Standalone Run हो सकते हैं। Applets Application के समान ही होते हैं।
ऐसा भी नहीं है कि Java का प्रयोग केवल Web Pages Applications लिखने के लिए ही किया जा सकता है। बल्कि Java एक Powerful Software Platform और General Purpose, High Level Programming Language भी है। Java के सबसे Common Application Programs के उदाहरण Servers हैं जो किसी Network के विभिन्न Clients को Service प्रदान करने का काम करते हैं। Web Servers, Proxy Servers, Mail Servers, Print Servers व Boot Servers Java Applications के विभिन्न उदाहरण हैं। Servlets Applets के समान ही होते हैं लेकिन ये किसी Browser में Run होने के बजाय ये Java Servers में Run होते हैं और Java Server की Configuring या Tailoring करते हैं।
एक सवाल पैदा हो सकता है कि Java API इन सभी प्रकार के Programs को किस प्रकार से Support करता है। इसका जवाब ये है कि ये इन सभी प्रकार के Programs को एक Software Components के Package के माध्यम से Support करता है जिसमें विभिन्न प्रकार की Functionalities होती हैं। Core API एक ऐसा API है जो हर Java Platform में पूरी तरह से Implemented होता है। Core API हमें निम्न Features प्रदान करता है-
The Essentials:
Objects, strings, threads, numbers, input and output, data structures, system properties, date and time जैसी कई चीजों को Handle करने की सुविधा प्रदान करता है।
Applets:
Java applets बनाने के लिए विभिन्न Components प्रदान करता है।
Networking:
Networking की सुविधा प्राप्त करने के लिए URLs, TCP व UDP sockets तथा IP addresses प्रदान करता है।
Internationalization:
ये हमें ऐसी सुविधा प्रदान करता है कि हम ऐसे Programs लिख सकते हैं जो सारी दुनिया में समान रूप से चल सकता है।
Security:
ये हमें Low-level और high-level दोनों प्रकार की सुरक्षा प्रदान करता है। साथ ही electronic signatures, public/private key management, access control और certificates की भी सुविधा प्रदान करता है।
Software components:
ये हमें JavaBeans जैसे Components प्रदान करता है जो किसी पहले से बने हुए Component Architecture में जैसे कि Microsoft’s OLE/COM/Active-X architecture, OpenDoc और Netscape’s Live Connect में Plug in हो सकता है।
Object serialization:
ये हमें Remote Method Invocation (RMI) द्वारा दूसरे सरल उपकरणों से Communication करने की सुविधा प्रदान करता है, जिसका प्रयोग आज Mobile Technology में भी हो रहा है।
Java Database Connectivity (JDBC):
ये हमें Relational databases से Connect होने व उन्हें Access करने की सुविधा प्रदान करता है।
Java में केवल Core API ही नहीं हैं बल्कि कुछ Standard Extensions भी हैं। ये Standard Extensions 3D, Servers, Collaboration, Telephony, Speech, Animation व कई अन्य चीजों के लिए भी APIs Define करते हैं। (How Java Program Works Internally)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF