Java8 बनाम Java9

Java8 Vs Java9



जावा 8 बनाम जावा 9: जावा 9 में सुधार जो आपको जानना आवश्यक है

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

फिर भी, जावा ने वर्षों से विकास और विकास जारी रखा है। सन माइक्रोसिस्टम्स द्वारा 1995 में बनाया गया जावा ने अपनी विश्वसनीयता साबित करना जारी रखा है। जावा का पिछला निर्माण जो १८ मार्च २०१४ से उपयोग में है, वह जावा एसई ८ था। जब इसका अनावरण किया गया, तो आलोचकों ने कहा कि यह कला का एक काम था, एपीआई में परिवर्तन की धाराओं का एक विमोचन। अब ब्लॉक पर एक नया बच्चा है। हौसले से ढाला गया जावा 9 आखिरकार यहां है। 21 सितंबर, 2017 को अनावरण किया गया , जावा एसई 9 से हमारे काम करने के तरीके और डेवलपर्स के एप्लिकेशन बनाने के तरीके को हिला देने की उम्मीद है।







जावा 8 की अविश्वसनीय चपलता और बहुमुखी प्रतिभा के कारण, व्यवसायों ने स्वास्थ्य सेवा, फिनटेक और अन्य प्रमुख क्षेत्रों जैसे उद्योगों के लिए अविश्वसनीय समाधान तैयार किए। दूसरी ओर, जावा 9 उस पर निर्माण करने और डेवलपर्स को पूरी तरह से नई कार्यक्षमता प्रदान करने का वादा करता है।



तो, आइए एक नजर डालते हैं कि जावा 9 में नया क्या है।



परियोजना आरा

यह जावा 9 के मुख्य आकर्षणों में से एक है। मूल रूप से, प्रोजेक्ट आरा नाम दिया गया है मॉड्यूलर जावा का। जैसे आरा टुकड़े एक साथ एक बड़ी तस्वीर बनाने के लिए टुकड़े टुकड़े करते हैं, वैसे ही जावा 9 की मॉड्यूलरिटी भी होती है। इसका मतलब है कि कार्यों या कार्यक्षमताओं को निष्पादित करने के कारण कोड भागों (मॉड्यूल) में टूट गया है। यह एक बड़ा कदम है क्योंकि मॉडर्नाइजेशन न केवल कोड की पुन: प्रयोज्यता को और अधिक आरामदायक बनाता है, बल्कि प्रबंधन और डिबगिंग भी सरल है। इस वजह से, हम पाते हैं कि डेवलपर्स के लिए जावा 9 के साथ एप्लिकेशन बनाने में किसी भी अन्य पिछले बिल्ड की तुलना में आसान समय होगा।





मॉडर्नाइजेशन का एक अन्य लाभ यह है कि डेवलपर्स अब हल्के, स्केलेबल एप्लिकेशन बना सकते हैं। विशेष रूप से इंटरनेट ऑफ थिंग्स के बढ़ने के साथ, हम जावा में लिखे गए ऐसे और अधिक ऐप पाएंगे।

जेईपी २२२: जेशेल : जावा शेल

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



जेशेल टूल में निम्नलिखित विशेषताओं के साथ एक कमांड लाइन इंटरफेस होगा:

  • विन्यास योग्य पूर्वनिर्धारित परिभाषा और आयात।
  • संपादन क्षमताओं वाला एक इतिहास
  • आवश्यक टर्मिनल अर्धविराम का स्वचालित जोड़

संकलक सुधार

अनुप्रयोगों को तेजी से चलाने के लिए, जावा 9 ने एक नई तकनीक को शामिल किया है जिसे समय से पहले (एओटी) संकलन कहा जाता है। अपने प्रायोगिक चरणों में यद्यपि यह तकनीक वर्चुअल मशीनों में लॉन्च होने से पहले ही जावा कक्षाओं को मूल कोड में संकलित करना संभव बनाती है। इसकी संभावनाएं अनंत हैं। हालाँकि, इस तकनीक का अधिक तात्कालिक उपयोग बड़े और छोटे ऐप के लिए स्टार्टअप समय में सुधार कर रहा है, बिना किसी चरम प्रदर्शन में बाधा के।

पूर्व-निरीक्षण में, जावा 8 जस्ट-इन-टाइम (जेआईटी) कंपाइलर्स का उपयोग करता है। ये कंपाइलर तेज़ हैं लेकिन वार्म अप करने से पहले थोड़ा अधिक समय लेते हैं। यह छोटे कार्यक्रमों या ऐप्स के लिए अप्रासंगिक हो सकता है क्योंकि संकलन करने के लिए बहुत अधिक कोड नहीं है। हालाँकि, बड़े ऐप्स के लिए, कथा काफी अलग है। वार्म-अप एक जस्ट-इन-टाइम कंपाइलर की जरूरत है, इसका मतलब है कि कुछ तरीकों को संकलित नहीं किया जाता है जिससे ऐप का प्रदर्शन कमजोर हो जाता है।

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

बेहतर जावास्क्रिप्ट समर्थन

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

G1 कचरा संग्रहकर्ता के रूप में

आम धारणा के विपरीत, जावा में एक नहीं, बल्कि चार कचरा संग्रहकर्ता हैं। इन कचरा संग्रहकर्ताओं को समान नहीं बनाया गया है और इस तरह, गलत चुनने का मतलब है कि आवेदन में प्रदर्शन के मुद्दे हैं। जावा 8 में, डिफ़ॉल्ट कचरा संग्राहक समानांतर/थ्रूपुट संग्राहक था। इस कचरा संग्रहकर्ता को इसके पूर्ववर्ती कचरा-प्रथम संग्राहक (G1) से बदल दिया गया है। चूंकि G1 संग्राहक को 4GB से बड़े ढेर को कुशलतापूर्वक समर्थन देने के लिए डिज़ाइन किया गया था, यह छोटे और बड़े पैमाने के अनुप्रयोगों के लिए एकदम सही कचरा संग्रहकर्ता है।

एपीआई अपडेट

जावा डेवलपमेंट किट के इस नए संस्करण में, एपीआई में कई अपडेट किए गए हैं और हम सबसे उल्लेखनीय पर चर्चा करेंगे।

सबसे पहले जावा 9 समवर्ती अद्यतन है जिसमें Java.util.concurrent.Flow और CompletableFuture है। बैक-प्रेशर की समस्या को हल करने के उद्देश्य से। फ्लो जावा का कार्यान्वयन है रिएक्टिव स्ट्रीम एपीआई जिसका उद्देश्य अनिवार्य रूप से बैकप्रेशर समस्या को हल करना है। बैक प्रेशर डेटा का निर्माण होता है जो तब होता है जब आने वाले अनुरोधों की दर एप्लिकेशन की प्रसंस्करण क्षमता से अधिक होती है। लंबे समय में, यह एक समस्या है क्योंकि एप्लिकेशन असंसाधित डेटा के बफर के साथ समाप्त होता है। इस अपडेट का मतलब होगा टाइमआउट, देरी और सबक्लासिंग को बेहतर तरीके से हैंडल करना।

सुरक्षा जावा की मूल पहचान का हिस्सा है। जैसे, नव स्वीकृत के लिए समर्थन एचटीटीपी 2.0 RFC एक बहुत बड़ा प्लस है। HTTP 2.0 RFC को के ऊपर बनाया गया था Google का SPDY एल्गोरिथम जो पहले से ही पिछले HTTP 1.1 से 11.81% से 47.7% तक की गति में सुधार के साथ फल देना शुरू कर चुका है। यह क्लाइंट एपीआई कोर एचटीटीपी प्रोटोकॉल और एचटीपीयूआरएलकनेक्शन एपीआई का अपग्रेड है जो कि समस्याग्रस्त है, कम से कम कहने के लिए क्योंकि इसे एचटीटीपी 1 से पहले भी बनाया गया था।

कोड कैशिंग हमेशा एक रणनीति रही है जिसका उपयोग वर्षों से अनुप्रयोगों को तेज और सुगम बनाने के लिए किया जाता है। हालाँकि, यह इसकी सीमाओं के बिना नहीं है, और इस पर किसी का ध्यान नहीं गया है। जावा 9 में एक अपडेट स्पष्ट रूप से दिखाता है कि जेडीके 9 कैश्ड कोड को छोटे भागों में विभाजित करता है जिससे समग्र प्रदर्शन में सुधार होता है। JDK 9 गैर-विधि कोड को छोड़ने के लिए विशेष पुनरावृत्तियों का उपयोग करता है; प्रोफाइल, गैर-प्रोफाइल और गैर-विधि कोड को अलग करने के लिए; और निष्पादन समय के लिए कुछ बेंचमार्क में सुधार करना।

जावा 9 के लाभ

कई व्यापार मालिकों के लिए, जावा 8 और 9 के बीच कोई अंतर नहीं है। हालांकि, डेवलपर के लिए, अंतर की दुनिया है। जावा एसई 9 के अपने पूर्ववर्तियों की तुलना में ये लाभ हैं।

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

सूत्रों का कहना है

http://openjdk.java.net/jeps/251
https://www.romexsoft.com/blog/java-8-vs-java-9/
https://blogs.oracle.com/java/features-in-java-8-and-9
https://dzone.com/articles/5-features-in-java-9-that-will-change-how-you-deve

ग्रहण जावा ट्यूटोरियल