जावा का नवीनतम संशोधन अन्य सुधारों के साथ-साथ रिकॉर्ड्स के लिए कुछ उपयोगी सिंटैक्स प्रस्तुत करता है।
जावा प्रोग्रामिंग की दुनिया लगातार विकसित हो रही है, जिससे आपको अपने शिल्प में उत्कृष्टता प्राप्त करने के लिए अद्यतन रहने की आवश्यकता होती है।
जावा 21 रोमांचक संवर्द्धन की एक लहर लाता है जो आपके समवर्ती, संग्रह संचालन और रिकॉर्ड के साथ काम करने के तरीके में क्रांतिकारी बदलाव लाता है।
वर्चुअल थ्रेड्स का परिचय
सर्वर अनुप्रयोगों को स्केल करना हमेशा चुनौतियां पेश करता है, थ्रेड अक्सर बाधाएं बन जाते हैं। थ्रेड्स की सीमित संख्या, इवेंट के बार-बार इंतज़ार करने या लॉक को अनब्लॉक करने के साथ मिलकर, समग्र प्रदर्शन में बाधा डालती है।
अतीत में, इस मुद्दे को संबोधित करने में जैसे निर्माणों का उपयोग शामिल था पूर्ण करने योग्य भविष्य या प्रतिक्रियाशील ढाँचे, जिसके परिणामस्वरूप जटिल कोड उत्पन्न हुआ जिसे समझना और बनाए रखना मुश्किल था।
सौभाग्य से, जावा 19 ने वर्चुअल थ्रेड्स को एक पूर्वावलोकन सुविधा के रूप में पेश किया, जिसे जावा 21 ने जेडीके एन्हांसमेंट प्रस्ताव 444 के माध्यम से परिष्कृत और मजबूत किया है।
वर्चुअल थ्रेड एक अत्यधिक आशाजनक विकल्प प्रदान करते हैं, जिससे आप स्केलेबिलिटी चुनौतियों से अधिक प्रभावी ढंग से निपट सकते हैं। इससे सर्वर अनुप्रयोगों के प्रदर्शन में सुधार और बढ़ी हुई प्रतिक्रिया होती है।
अनुक्रमित संग्रह अधिक उपयोगी हैं
परंपरागत रूप से, अपने जावा प्रोग्रामिंग में लिंक्ड सूचियों का उपयोग करना काफी वर्बोज़ कोड की आवश्यकता है। उदाहरण के लिए, अंतिम तत्व लाने के लिए, आपको इस बोझिल दृष्टिकोण का उपयोग करना होगा:
वर अंतिम = सूची.प्राप्त (सूची.आकार() - 1);
हालाँकि, जावा 21 एक संक्षिप्त और सुरुचिपूर्ण विकल्प प्रस्तुत करता है:
वर अंतिम = सूची.getLast();
इसी प्रकार, LinkedHashSet के पहले तत्व तक पहुँचने के लिए एक गोल चक्कर मार्ग की आवश्यकता होती है:
वर पहला = लिंक्डहैशसेट.इटरेटर().अगला();
लेकिन जावा 21 के साथ, यह कार्य बहुत आसान हो जाता है:
वर पहला = लिंक्डहैशसेट.गेटफर्स्ट();
आप नए का उपयोग करके LinkedHashSet के अंतिम तत्व तक भी पहुंच सकते हैं अंतिम लो वह विधि जो पूरे सेट को दोहराने से बचाती है।
अनुक्रमित संग्रहों में ये सुधार न केवल कोड पठनीयता को बढ़ाते हैं बल्कि तत्व पुनर्प्राप्ति को भी सुव्यवस्थित करते हैं, जिससे जावा प्रोग्रामिंग अधिक कुशल और डेवलपर-अनुकूल बन जाती है।
सुविधा के लिए रिकॉर्ड पैटर्न
जावा 19 में पूर्वावलोकन सुविधा के रूप में पेश किए गए रिकॉर्ड पैटर्न, स्पष्ट कास्ट या एक्सेस विधियों की आवश्यकता के बिना जावा में रिकॉर्ड के फ़ील्ड तक पहुंचने के लिए एक सुविधाजनक तंत्र प्रदान करते हैं।
वे साथ तालमेल बिठाते हैं उदाहरण के लिए पैटर्न मिलान और स्विच के लिए पैटर्न मिलान, कोड को महत्वपूर्ण रूप से सरल बनाना और समग्र पठनीयता को बढ़ाना।
यहां इस अवधारणा का एक उदाहरण दिया गया है, जिसका नाम एक सरल रिकॉर्ड है पद:
जनता अभिलेख पद(int यहाँ एक्स, int यहाँ य){}
पहले, किसी ऑब्जेक्ट के वर्ग के आधार पर अलग-अलग क्रियाएं करने के लिए इसका उपयोग करना आवश्यक था उदाहरण के लिए पैटर्न मिलान, जैसा कि निम्नलिखित कोड स्निपेट में उदाहरण दिया गया है:
जनताखालीपनछपाई(वस्तु ओ){
अगर (ओ का उदाहरण स्थिति पी) {
System.out.printf("ओ एक स्थिति है: %d/%d%n", p.x(), p.y());
} अन्यअगर (ओ का उदाहरण स्ट्रिंग एस) {
System.out.printf("ओ एक स्ट्रिंग है: %s%n", एस);
} अन्य {
System.out.printf("ओ कुछ और है: %s%n", ओ);
}
}
साथ रिकार्ड पैटर्न, अब आप सीधे रिकॉर्ड पैटर्न से मिलान कर सकते हैं जैसे कि स्थिति (int x, int y) का उपयोग करने के बजाय स्थिति प नमूना। यह आपको वेरिएबल्स तक पहुंचने की अनुमति देता है एक्स और य की आवश्यकता को समाप्त करते हुए, सीधे कोड में पी.एक्स() और पी.वाई():
जनताखालीपनछपाई(वस्तु ओ){
अगर (हे का उदाहरणपद(int यहाँ एक्स, int यहाँ य)) {
System.out.printf("ओ एक स्थिति है: %d/%d%n", एक्स, वाई);
} अन्यअगर (ओ का उदाहरण स्ट्रिंग एस) {
System.out.printf("ओ एक स्ट्रिंग है: %s%n", एस);
} अन्य {
System.out.printf("ओ कुछ और है: %s%n", ओ);
}
}
इसके अलावा, आप उपयोग कर सकते हैं रिकार्ड पैटर्न के साथ संयोजन के रूप में स्विच के लिए पैटर्न मिलान, अपने कोड को और सरल बनाने के लिए:
जनताखालीपनछपाई(वस्तु ओ){
बदलना (ओ) {
मामलापद(int यहाँ एक्स, int यहाँ य) -> System.out.printf("ओ एक स्थिति है: %d/%d%n", एक्स, वाई);
मामला स्ट्रिंग एस - > System.out.printf("ओ एक स्ट्रिंग है: %s%n", एस);
गलती करना - > System.out.printf("ओ कुछ और है: %s%n", ओ);
}
}
नेस्टेड रिकॉर्ड पैटर्न आपको उन रिकॉर्ड्स से मिलान करने की अनुमति देता है जिनके फ़ील्ड स्वयं रिकॉर्ड हैं। उदाहरण के लिए, नाम के एक रिकॉर्ड पर विचार करें पथ जिसमें शामिल है a से और को पद:
जनता अभिलेख पथ(स्थिति से, स्थिति से){}
रिकॉर्ड पैटर्न नियोजित करके, मुद्रण करके पथ वस्तु अधिक संक्षिप्त हो जाती है:
जनताखालीपनछपाई(वस्तु ओ){
बदलना (ओ) {
मामलापथ(स्थिति से, स्थिति से) -> System.out.printf("o एक पथ है: %d/%d -> %d/%d%n", from.x(), से।य(), को।एक्स(), को।य());
// अन्य मामले
}
}
इसकी सहायता से रिकार्ड पैटर्न, विभिन्न प्रकार के क्षेत्रों के साथ रिकॉर्ड को संभालना अधिक स्पष्ट और पठनीय हो जाता है। मान लीजिए कि आपने रिकॉर्ड संशोधित कर दिए हैं, स्थिति2D और स्थिति3डी, कहाँ पदएक जावा इंटरफ़ेस है जो दोनों लागू करते हैं:
जनता सील इंटरफेसपदपरमिटस्थिति2D, स्थिति3डी{}
जनता अभिलेख स्थिति2D(int यहाँ एक्स, int यहाँ य) स्थिति लागू करता है {}
जनता अभिलेख स्थिति3डी(int यहाँ एक्स, int यहाँ हाँ, int यहाँ z) स्थिति लागू करता है {}
जनता रिकॉर्ड पथ < P स्थिति बढ़ाता है > (P से, P से) {}
2डी और 3डी पथों के लिए मुद्रण व्यवहार में अंतर करने के लिए, आप रिकॉर्ड पैटर्न का उपयोग कर सकते हैं:
जनताखालीपनछपाई(वस्तु ओ){
बदलना (ओ) {
मामलापथ(स्थिति2डी से, स्थिति2डी से) -> System.out.printf("o एक 2D पथ है: %d/%d -> %d/%d%n", from.x(), से।य(), को।एक्स(), को।य());
मामलापथ(स्थिति3डी से, स्थिति3डी से) -> System.out.printf("ओ एक 3डी पथ है: %d/%d/%d -> %d/%d/%d%n", from.x(), से।य(), से।जेड(), को।एक्स(), को।य(), को।जेड());
// अन्य मामले
}
}
विभिन्न प्रकार के फ़ील्ड वाले रिकॉर्ड के साथ काम करते समय रिकॉर्ड पैटर्न शब्दाडंबर को काफी कम कर देते हैं और कोड पठनीयता को बढ़ाते हैं।
जावा 21 के साथ नई संभावनाओं को अनलॉक करें
जावा 21 कई शक्तिशाली सुविधाएँ प्रस्तुत करता है जो जावा प्रोग्रामिंग भाषा की क्षमताओं को बढ़ाती हैं। इन संवर्द्धनों को अपनाकर, आप अपनी विकास प्रक्रियाओं को सुव्यवस्थित कर सकते हैं और अपने अनुप्रयोगों के लिए नई संभावनाओं को अनलॉक कर सकते हैं।
नवीनतम भाषा सुविधाओं और जावा फ्रेमवर्क के साथ अपडेट रहना आपको कुशल और रखरखाव योग्य कोड बनाए रखने में सक्षम बनाता है, जिससे यह सुनिश्चित होता है कि आप जावा प्रोग्रामिंग में सबसे आगे बने रहें।