Oracle ने जावा 9 संस्करण को नई विशेषताओं के समृद्ध सेट के साथ जारी किया है और बहुत सारे नए संवर्द्धन लाता है।
जावा 9 में पेश की गई कुछ महत्वपूर्ण विशेषताएं और संवर्द्धन नीचे दिए गए हैं।
- कलेक्शन के लिए फैक्ट्री मेथड: फैक्ट्री मेथड विशेष प्रकार के स्टेटिक मेथड हैं जिनका उपयोग कलेक्शन के अनमॉडिफिएबल इंस्टेंस बनाने के लिए किया जा सकता है, जिसका अर्थ है कि हम इन मेथड का उपयोग लिस्ट, सेट, और मैप बनाने के लिए कर सकते हैं।
- जावा प्लेटफॉर्म मॉड्यूल सिस्टम (JPMS): एक जावा मॉड्यूल जावा एप्लिकेशन और जावा पैकेज को जावा मॉड्यूल में बंडल करने का एक तंत्र है। यह निर्दिष्ट करता है कि जावा पैकेज में से कौन से अन्य जावा मॉड्यूल द्वारा दृश्यमान हैं इस मॉड्यूल का उपयोग करके।
- इंटरफेस में प्राइवेट मेथड: प्राइवेट मेथड को इंटरफेस में प्राइवेट और प्राइवेट स्टेटिक शामिल करने की अनुमति है, इसलिए इंटरफेस के अंदर कोड पुन: प्रयोज्यता में सुधार होता है।
- जावा 9 REPL (JShell): JShell एक REPL (रीड इवैल्यूएट प्रिंट लूप) टूल है और कमांड लाइन से चलता है। हम कंसोल से JShell लॉन्च कर सकते हैं और सीधे जावा कोड टाइप और एक्जीक्यूट करना शुरू कर सकते हैं।
- Try With Resources सुधार: जावा ने जावा 7 में try-with-resources सुविधा पेश की जो उपयोग के बाद संसाधनों को स्वचालित रूप से बंद करने में मदद करती है।
- अनाम आंतरिक क्लास के लिए डायमंड ऑपरेटर: जावा 9 ने एक नई सुविधा पेश की है जो हमें डायमंड ऑपरेटर का उपयोग अनाम क्लासेस के साथ करने की अनुमति देती है।
- Completable Future API सुधार: जावा 9 संस्करण ने CompletableFuture API में सुधार किया ताकि जावा 8 में उठी कुछ समस्याओं को हल किया जा सके। उन्होंने कुछ देरी और टाइमआउट, कुछ यूटिलिटी मेथड और बेहतर सबक्लासिंग का समर्थन जोड़ा है।
- रिएक्टिव स्ट्रीम्स: रिएक्टिव स्ट्रीम API एक पब्लिश-सब्सक्राइब फ्रेमवर्क है जो जावा भाषा का उपयोग करके एसिंक्रोनस, स्केलेबल और पैरेलल एप्लिकेशन को बहुत आसानी से लागू करने के लिए है।
- Process API सुधार: Process API की जिम्मेदारी ऑपरेटिंग सिस्टम प्रोसेस को नियंत्रित और प्रबंधित करना है जो काफी सुधार हुआ है। ProcessHandle क्लास प्रोसेस का नेटिव प्रोसेस ID, प्रारंभ समय, संचित CPU समय, आर्गुमेंट्स, कमांड, यूजर, पेरेंट प्रोसेस और वंशज प्रदान कर सकती है।
- Optional क्लास सुधार: जावा 9 में, Optional क्लास के तीन मुख्य सुधार हैं: Optional.ifPresentOrElse(), Optional.or() और Optional.stream()।
- Stream API सुधार: Stream API में सुधार हुआ है और Stream इंटरफेस में नए मेथड जोड़े गए हैं। takeWhile(), dropWhile(), ofNullable() और iterate() मेथड स्ट्रीम एलिमेंट्स पर ऑपरेशन करने के लिए जोड़े गए हैं।
- मल्टी-रिज़ॉल्यूशन इमेज API: मल्टी-रिज़ॉल्यूशन इमेज API अलग-अलग ऊंचाई और चौड़ाई वाली छवियों के सेट को एनकैप्सुलेट कर सकता है जो हमें उन्हें हमारी आवश्यकताओं के साथ क्वेरी करने की अनुमति देता है।
- HTTP/2 क्लाइंट: HTTP/2 HTTP प्रोटोकॉल का नया संस्करण है और इस बात पर केंद्रित है कि सर्वर और क्लाइंट के बीच डेटा कैसे फ्रेम और ट्रांसपोर्ट किया गया है। जावा 9 में, HTTP क्लाइंट मॉड्यूल को इनक्यूबेटर मॉड्यूल के रूप में बंडल किया गया है और पिछड़ी संगतता के साथ HTTP/2 का समर्थन करता है।
- एनहांस्ड @Deprecated एनोटेशन: @Deprecated एनोटेशन डिप्रिकेटेड API के बारे में अधिक जानकारी प्रदान कर सकता है। यह एप्लिकेशन के डिप्रिकेटेड API के स्टेटिक उपयोग का विश्लेषण करने के लिए एक टूल भी प्रदान कर सकता है।