Java केवल एक Programming Language ही नहीं है बल्कि ये एक Platform भी है जब Sun Microsystems ने November 1995 में Java को दुनिया से परिचित करवाया तब Company के Cofounder Bill Joy मे Java की निम्न परिभाषा दी थी कि JavaSmall, Simple, Safe, Object-Oriented, Interpreted Dynamically Optimized, Byte-Coded. Architecture-Neutral, Garbage-Collected, Multithreaded Programming Language है जिसमें Distributed Dynamically Extensible Programs लिखने के लिए एक Strongly Typed Exception Handling Mechanism है। जावा के इन्हीं गुणों को Java के Features भी कहते हैं। हम यहाँ पर ओर जावा के फीचर्स क्या है? Features of Java in Hindi के बारे में जानकारी प्राप्त करने वाले है।
Table of Contents
जावा भाषा – Java Language in Hindi
Java एक छोटी और सरल भाषा है जिसे आसानी से सीखा जा सकता है। जावा को इस तरह से Design किया गया है कि इसे कोई भी Programmer आसानी से सीख सके और Computer Programming के Internal Functionality को जाने बिना भी ज्यादा से ज्यादा Efficient Program Develop कर सके। यदि किसी Programmer को किसी भी Programming Language का थोड़ा भी ज्ञान है, तो वह बहुत ही आसानी से व जल्दी से Window Based Application Internet Based Distributed Application (Applets) Develop करना सीख सकता है।
जब जावा को पहली बार Release किया गया था, तब वह काफी छोटी भाषा थी। लेकिन आज ये काफी बड़ी भाषा बन चुकी है और सभी प्रकार के Applications को Efficiently Develop करने में सक्षम है। ये Language C/C++, Simula, Ada जैसी कई अन्य Languages से प्रेरित है. लेकिन इसकी ज्यादातर Coding C++ Language के समान ही है इसलिए किसी C/C++ Programmer को जावा सीखने में कोई कठिनाई नहीं होती है।
इस Language में C व C++ के अच्छे Features को Use कर लिया गया है जबकि इन Languages के Confusing तथा Typical Features को छोड़ कर उनके स्थान पर अधिक सरल Concepts को Include कर लिया गया है। जैसे C++ के Operator Overloading व Pointer जैसे Concepts को जावा में छोड़ दिया गया है, जबकि Multithreading जैसी Advance Technique को Add कर लिया गया है।
ऑब्जेक्ट ओरिएंटेड – Object Oriented in Hindi
Java में हर चीज Object व Class के रूप में परिभाषित है, जिसे Object Oriented Programming Concept कहा जाता है। OOPS हमें Abstraction and Encapsulation, Polymorphism और Inheritance जैसे Features प्रदान करता है, जिससे हम एक समस्या को उसी तरह से Computer में Logically Organize कर सकते हैं, जिस तरह से समस्या Real World में Actually या Physically Organized रहती है जावा में बहुत सारी जरूरी Classes पहले से ही Packages के Form में हमें प्राप्त होती है, जिन्हें बिना Rewrite किए हम ज्यों का त्यों Use कर सकते हैं।
वितरित – Distributed in Hindi
Java के Programs Network पर यानी Web Pages पर भी Execute होते हैं। इसलिए इसे Distributed Language कहा जाता है। Distribution का मतलब ये होता है कि Java के Program किसी भी Platform पर Run हो सकते हैं।
हम जानते है कि आज कई तरह के Operating Systems उपलब्ध है और अलग-अलग लोग अपनी जरूरत व इच्छा के अनुसार अलग-अलग Operating Systems का प्रयोग करते हैं। कोई Windows Operating System Use करता है तो कोई Linux तो कोई MacOS या OS/2 Use करता है। ये सभी अलग-अलग Platform कहलाते हैं।
यदि हम Windows Based Computer पर कोई Program “C” या Visual Basic जैसी भाषा में Create करते हैं, तो ये Program उन सभी Computers पर आसानी से Run होते हैं जो Windows को Use करते हैं।
लेकिन यदि इन्हीं Programs को Linux या MacOS पर Execute करने की कोशिश की जाए तो ये Program उस Operating System पर Execute नहीं होते। इन Platforms के लिए Program को वापस इन्हीं Platform वाले Computers पर Compile करना पडता है। जबकि Java के साथ ऐसा नहीं है।
जावा में हम किसी भी Platform पर Program Create करके Compile करें, वे Program सभी अन्य Platforms पर समान रूप Execute होते हैं यानी Java के Programs को विभिन्न Platforms पर Distribute किया जा सकता है इसलिए Java को Distributed Language कहा जाता है।
जावा को इस प्रकार से Design किया गया है कि हम इसमें ऐसे Applications Develop कर सके, जो Internet पर चल सके। इस Language में ये Ability है कि ये Data व Program दोनों को Internet पर विभिन्न Computers पर Share कर सकता है। जावा Applications Remote Objects को भी उतनी ही आसानी से Access व Open कर सकते हैं, जितनी आसानी से वे Local Computer के Objects को Open व Access करते हैं। जावा ऐसी Networking की सुविधा प्रदान करता है कि विभिन्न Remote Locations पर स्थित विभिन्न Programmers एक ही Single Project पर समान समय पर एक साथ काम कर सकते हैं।
संकलित और व्याख्यायित – Compiled and Interpreted in Hindi
ज्यादातर अन्य Languages के Programs या तो Compile होते हैं या फिर Interpreted होते हैं। लेकिन Java के Programs Compile भी होते हैं और Interpreted भी। Java के Programs को सबसे पहले Compile किया जाता है। Java के Program Compile होने के बाद सीधे ही Machine Language में Convert नहीं होते हैं, बल्कि ये Source Code व Machine Code के बीच की स्थिति में Convert होते हैं जिसे Bytecodes कहा जाता है।
इन Bytecodes को जब किसी भी Platform पर Run करना होता है तब ये Bytecodes उसे Computer के Platform के अनुसार Interpreted हो कर पूरी तरह से उस Machine के अनुसार Machine Code में Convert होते है और उस Platform पर Execute हो सकते हैं।
जावा मजबूत और सुरक्षित – Java Robust and Safe in Hindi
Java के Programs में Errors आने की सम्भावना अन्य Languages की तुलना में बिल्कुल कम होती है। इसलिए Java के Programs को Robust कहा जाता है। इसके Compiler में विभिन्न प्रकार से Generate होने वाली Errors को Handle करने के लिए कई Built-in तरीके Develop कर दिए गए है और जावा को इस तरह से Design किया गया है, कि एक बार सही तरीके से Compiled Program में कभी भी Error आने की सम्भावना नहीं रहती है। जितनी भी Errors आनी होती है, ये सभी Program Development व Testing के समय ही आ जाती है. जिन्हें Handle कर लिया जाता है।
इसमें Compile Time व Runtime दोनों स्थानों पर विभिन्न प्रकार के Errors के लिए विभिन्न Data Types की Checking होती है। विभिन्न प्रकार के Objects द्वारा ली जाने वाली Memory को ये स्वयं ही Release कर देता है, जिससे हमें इस बात की चिन्ता करने की जरूरत नहीं होती है, कि हमने सभी Unrequited Objects को Destroy करके उनकी Memory को Release किया या नहीं।
जावा में Exception Handling के लिए भी सुविधा प्रदान की गई है, जिसका प्रयोग हम Serious Errors को Trap करने व उन्हें Solve करने के लिए कर सकते हैं. जिससे हमारे Program की और सुरक्षा हो जाती है। जब हम Internet की बात करते हैं, तब Security काफी मायना रखती है। जावा स्वयं ही विभिन्न प्रकार के Memory Management व Memory Access से सम्बंधित काम करता है, इसलिए ये कभी भी Memory व उसमें Stored Data को गलत तरीके से Access करने की छूट नहीं देता है।
इस वजह से Applet द्वारा किसी Computer में Virus आने की सम्भावना ही नहीं होती है। क्योकि जावा में Pointers की सुविधा नहीं है जो Directly Memory को Access कर सके, इसलिए हम किसी भी Computer की Memory को Directly Access नहीं कर सकते हैं। साथ ही जावा Applets कभी किसी Client Computer के Resources को Access नहीं करते हैं. इसलिए जावा Applets कभी भी Clients के Computer या उसके Data को नुकसान नहीं पहुंचा सकते हैं।
Architecture Neutral / Platform Independent / Portable / Byte Coded
Java के Bytecodes विभिन्न प्रकार के Processors व Operating Systems पर समान रूप से Run हो सकते हैं। इसलिए इसे Architecture Neutral or Portable कहा जाता है। जावा के Programs को केवल एक ही बार Develop करना होता है। एक बार इसे Develop करने के बाद इसे किसी भी Computer पर किसी भी Platform पर Run किया जा सकता है।
यदि Operating System, System Resources या Processor में Change किया जाता है. तब भी हमें जावा के Program में किसी प्रकार का Change करने की जरूरत नहीं होती है। यही जावा के सबसे ज्यादा Popular होने की मुख्य वजह है, जिससे हम जावा का प्रयोग Internet Programming के लिए करके World Wide Web पर Run होने वाले Applications: Develop करते हैं और विभिन्न Computers को आपस में Interconnected करते हुए World Wide Web पर काम करने के लिए ऐसे Programs को Use करते हैं।
हम जावा Applet को Remote Computer से Download कर सकते हैं और फिर उसे अपने Computer पर Run कर सकते हैं। इस प्रकार की सुविधा होने से एक User को उसके घर पर ही विभिन्न प्रकार के Applications व Applets प्राप्त हो जाते हैं, जिन्हें वह Use करना चाहता है।
जावा दो तरीको से Portable होता है एक तो जावा Compiler Byte codes Instructions Generate करता है, जिसे किसी भी Computer पर Implement किया जा सकता है और दूसरा जावा के Primitive या Basic Data Types Machine पर निर्भर नहीं होते हैं बल्कि जावा Platform पर निर्भर होते हैं। यानी किसी भी Compute पर जावा के सभी Data Types की Size समान होती है, चाहे हम Pentium Computer पर जावा Program को Use करें. चाहे AMD पर !
Java Garbage Collective in Hindi
Java एक Programmer को Memory Manage करने की सुविधा प्रदान नहीं करता है बल्कि जरूरत के अनुसार स्वयं ही Memory Management करता है। इसलिए Programmer द्वारा Memory Management के समय किसी दूसरे Data को नुकसान पहुंचाने की सम्भावना नहीं होती है। इसलिए ये Language “C” व “C++” जैसी भाषाओं की तुलना में अधिक सुरक्षित या Secure Language है।
जावा हाई परफॉरमेंस लैंग्वेज – Java High Performance Language in Hindi
Java के Program Interpreted Mode में Run होते हैं लेकिन फिर भी अन्य Interpreted Based Languages की तुलना में Java की Speed व Performance बहुत अच्छी होती है। इसलिए इसे High Performance Language कहा जाता है।
मल्टीथ्रेडेड और इंटरएक्टिव क्या होते हैं? – Multithreaded and Interactive in Hindi
Java ये सुविधा प्रदान करता है कि एक ही Software Program के विभिन्न भागों को एक ही समय में एक साथ Run किया जा सकता है। इसलिए इसे Multithreaded Language कहा जाता है।
उदाहरण के लिए मानलो कि हम किसी Program से Audio Sound तो सुन ही रहे हैं. साथ ही उसी Program में Scroll Bars को भी Use कर रहे हैं। किसी Window में एक तरफ कोई Movie Clip तो Play हो ही रहा है, साथ ही हम किसी अन्य Movie Clip को Open करने के लिए Open Dialog Box में किसी दुसरी Movie Clip को भी खोज रहे हैं। इस तरह से एक ही Program के विभिन्न हिस्सों का एक ही समय में एक साथ Run होना Multithreaded Concept के कारण ही सम्भव होता है।
गतिशील और एक्स्टेंसिबल – Dynamic and Extensible in Hindi
Java में एक ही Program के कई Versions को एक साथ Maintain किया जा सकता है। इसलिए इसे Dynamic Language भी कहा जाता है। यानी जावा एक Dynamic Language है। जावा में किसी Program के लिए Required Classes जावा के Program के Run होते. समय उसमें Link हो सकती है और जैसे ही उस Class का काम समाप्त होता है यह Class स्वयं ही Memory से Release हो जाती है। इस प्रक्रिया को Dynamic Process कहा जाता है।
जावा एक Query द्वारा ये भी Determine कर सकता है कि Program के Run Time में उससे कौनसी Class Link हो रही है। साथ ही यह Program के Run Time में भी किसी भी Dynamic Class या Dynamic Link Library से Link हो सकता है और Run Time सुविधाओं को प्राप्त कर सकता है। इस प्रक्रिया को Dynamic Linking भी कहते हैं।
जावा हमें अन्य Languages के Methods को भी जावा में use करने की सुविधा प्रदान करता है। इन Methods को Native Methods कहते हैं और ये Program के Run Time में Dynamically Link हो कर अपना काम करते हैं। यानी हम जावा में अन्य Languages की सुविधाओं को Use करके जावा के Program की क्षमताओं को बढ़ा सकते हैं या Extend कर सकते हैं। इसी प्रक्रिया को जावा की Extensibility कहते हैं।
Java के Programs कई प्रकार के होते हैं, उनमें से कुछ निम्नानुसार हैं :
Java Applications in Hindi
ये ऐसे Programs होते हैं जिन्हें Execute होने के लिए किसी Browser की जरूरत नहीं होती है। ये Stand Alone होते है और किसी भी Computer पर Run हो सकते हैं। इन्हें Command Prompt पर Run किया जा सकता है।
Java Applets in Hindi
ये ऐसे Programs होते हैं जिन्हें Run होने के लिए Browser की जरूरत होती है। ये Programs Web Pages पर Run होते हैं। एक Applet Program कभी भी किसी Local Machine के Resources को Access नहीं करता है।
Java Servlet in Hindi
ये Programs Web Servers की Functionality को बढ़ाने के लिए लिखे जाते हैं। सामान्यतः इनका कोई GUI नहीं होता है।
जावा पैकेजेस क्या है? – Java Packages in Hindi
ये Java की Classes का एक Collection होता है जिसे किसी भी अन्य Java Program में आसानी से Reuse किया जा सकता है।
Object Oriented Concept Programming करने का एक असाधारण लेकिन बहुत ही Powerful तरीका है। OOP में एक Computer Program को Objects के एक ऐसे Group के रूप में परिभाषित किया जाता है जिसमें सभी Objects आपस में Interact कर सकते हैं।
त्यानी सभी Objects अपनी सूचनाओं का एक दूसरे के बीच Transaction कर सकते हैं। OOPS में दुनिया की हर चीज को Object माना जाता है। मानलो कि एक Worker Object Money Object को Company Funds Object से लेता है और अपने स्वयं के Bank Account Object में जमा करवाता है। यदि दूसरा कोई Worker Object DoublecheckFund Object को Use करता है तो Polish Object को बुलाया जाता है।
Java Program की सबसे बड़ी यदि कोई विशेषता है, तो वह ये है कि Java के Program को World Wide Web Pages पर Execute किया जा सकता है। इन Programs को Applets कहते हैं। Java से पहले HTML Format में ही विभिन्न Web Pages को लिखा जाता था। ये Web Pages ऐसे होते थे, जिसमें जिस Page को देखना हो उसके Hyperlink पर Click करो और दूसरा Page देखना है तो उसके Hyperlink पर Click करो और आगे से आगे बढते जाओ।
जबकि Java Applet जो कि Web Pages पर Run होते हैं. अधिक अच्छा अनुभव प्रदान करता है। इसमें User के Response के अनुसार Web Page Dynamically Update होता है। जैसे आज हम कई TV Channel पर देखते हैं जहां कोई सवाल पूछा जाता और लोग SMS भेज कर अपना पक्ष बताते हैं। जैसे-जैसे लोग SMS भेजते रहते है, SMS की संख्या भी बदलती रहती है ये काम Dynamically होता है जो कि Java के कारण ही सम्भव हुआ है।
आज User Internet पर उपलब्ध विभिन्न प्रकार के Web Pages से Java के कारण ही Interact कर सकता है। यदि इसका उदाहरण लेना चाहें, तो Share Market का सारा काम Online होता है User जब चाहे अपने Account की Information को प्राप्त कर सकता है। यदि वह किसी Company का Share खरीदना चाहता है. तो वह Online खरीद सकता है जैसे ही वह Share खरीदता है, उस Company के Buyers की संख्या बढ़ जाती है। इसी तरह से यदि Share को बेचा जाता है, तो Company के Sellers की संख्या बढ़ जाती है ये जो परिवर्तन Web Pages के Data में होता है, वह Dynamic परिवर्तन कहलाता है। यानी Web Page Dynamically या Run Time में User के Interaction से Update होता है। इस प्रकार की Secure Dynamic a Online सुविधा हमें Java के कारण ही प्राप्त हो पा रही है।
हालांकि Web Based Programs की वजह से Java अधिक महत्वपूर्ण लगती है लेकिन ये एक General Purpose Language भी है जिसका प्रयोग सभी तरह के Programs को Develop करने में होता है। आज हम Mobile के जितने भी Software देखते हैं उनमें से ज्यादातर Java Based हैं। Mobile में जो Games Run होते हैं वे ज्यादातर Java Develop किए जाते हैं।
जावा फीचर्स सम्बंधित प्रश्न और उत्तर
जावा में इंटरफेस क्या हैं?
जावा में इंटरफेस एक ऐसी एक्सेस स्पेस होती है जो केवल अंदरूनी फंक्शनलिटी को प्रदान करती है। यह अन्य क्लासेस को इस्तेमाल करने के लिए आसान बनाता है और इसे इम्प्लीमेंट करने से एक इंटरफेस क्लास एक अभिव्यक्ति होता है।
जावा में थ्रेड्स क्या हैं?
जावा में थ्रेड्स एक ऐसी फीचर है जो एक समय में अनेक कार्यों को एक साथ चलाने की अनुमति देता है। इससे कोड का प्रदर्शन बेहतर होता है और एप्लिकेशन का रिस्पांसिवनेस बढ़ता है।
जावा में एक्सेप्शन्स क्या होती हैं?
जावा में एक्सेप्शन्स एक ऐसी स्थिति होती है जब कोड अचानक से ठीक से काम नहीं करता है। ये अनियंत्रित त्रुटियों के साथ सामने आने वाली समस्याएं होती हैं। जब एक एक्सेप्शन होता है, तो उसका प्रोग्राम रिकवर होता है और इसे हैंडल किया जाता है।