prominent java 8 features with code examples
एक व्यापक सूची और उदाहरण के साथ जावा 8 रिलीज में प्रस्तुत सभी प्रमुख सुविधाओं की व्याख्या:
ओरेकल से जावा 8 रिलीज दुनिया के # 1 विकास मंच का एक क्रांतिकारी रिलीज था। इसमें जेवीएम, जावा भाषा और पुस्तकालयों के समन्वित तरीके से विकास के साथ-साथ जावा प्रोग्रामिंग मॉडल का एक बड़ा उन्नयन शामिल था।
इस रिलीज़ में उपयोग में आसानी, उत्पादकता, बेहतर बहुभाषी प्रोग्रामिंग, सुरक्षा और समग्र रूप से बेहतर प्रदर्शन के लिए कई सुविधाएँ शामिल थीं।
आप क्या सीखेंगे:
विंडोज़ 10 के लिए सबसे अच्छा मुफ्त पीसी क्लीनर
- जावा 8 रिलीज़ में सुविधाएँ जोड़ी गईं
- कार्यात्मक इंटरफेस और लैम्ब्डा एक्सप्रेशन
- forEach () विधि Iterable इंटरफ़ेस में
- वैकल्पिक वर्ग
- डिफ़ॉल्ट और स्थैतिक तरीके इंटरफेस में
- विधि संदर्भ
- संग्रह पर थोक डेटा संचालन के लिए जावा स्ट्रीम एपीआई
- जावा दिनांक समय एपीआई
- गैंडा जावास्क्रिप्ट इंजन
- बेस 64 एनकोड डिकोड
- संग्रह एपीआई सुधार
- कॉनएरेमिली एपीआई परिवर्तन / संवर्द्धन
- जावा आईओ सुधार
- विविध कोर एपीआई सुधार
- निष्कर्ष
जावा 8 रिलीज़ में सुविधाएँ जोड़ी गईं
प्रमुख परिवर्तनों में, निम्नलिखित उल्लेखनीय विशेषताएं हैं जिन्हें इस रिलीज में जोड़ा गया था।
- कार्यात्मक इंटरफेस और लम्बदा एक्सप्रेशंस
- forter (Iterable इंटरफ़ेस में) विधि
- वैकल्पिक वर्ग,
- डिफ़ॉल्ट और स्थिर तरीके इंटरफेस में
- विधि संदर्भ
- संग्रह पर थोक डेटा संचालन के लिए जावा स्ट्रीम एपीआई
- जावा दिनांक समय एपीआई
- संग्रह एपीआई सुधार
- कॉनएरेमिली एपीआई सुधार
- जावा आईओ में सुधार
- गैंडा जावास्क्रिप्ट इंजन
- बेस 64 एनकोड डिकोड
- विविध कोर एपीआई में सुधार
इस ट्यूटोरियल में, हम इन विशेषताओं में से प्रत्येक पर संक्षेप में चर्चा करेंगे और उनमें से प्रत्येक को सरल और आसान उदाहरणों की मदद से समझाने की कोशिश करेंगे।
कार्यात्मक इंटरफेस और लैम्ब्डा एक्सप्रेशन
Java 8 एक एनोटेशन का परिचय देता है जिसे @FunctionalInterface के नाम से जाना जाता है जो आमतौर पर कंपाइलर स्तर की त्रुटियों के लिए होता है। यह आमतौर पर तब उपयोग किया जाता है जब आप जिस इंटरफ़ेस का उपयोग कर रहे हैं वह कार्यात्मक इंटरफ़ेस के अनुबंधों का उल्लंघन करता है।
वैकल्पिक रूप से, आप एक कार्यात्मक इंटरफ़ेस एसएएम इंटरफ़ेस या एकल सार विधि इंटरफ़ेस कह सकते हैं। एक कार्यात्मक इंटरफ़ेस ठीक इसके सदस्य के रूप में एक 'अमूर्त विधि' की अनुमति देता है।
नीचे दिया गया कार्यात्मक इंटरफ़ेस का एक उदाहरण है:
@FunctionalInterface public interface MyFirstFunctionalInterface { public void firstWork(); }
आप एनोटेशन, @FunctionalInterface को छोड़ सकते हैं और आपका कार्यात्मक इंटरफ़ेस अभी भी मान्य होगा। हम इस एनोटेशन का उपयोग केवल कंपाइलर को सूचित करने के लिए करते हैं कि इंटरफ़ेस में एक एकल सार विधि होगी।
ध्यान दें: परिभाषा के अनुसार, डिफ़ॉल्ट विधियाँ गैर-सार होती हैं और आप अपनी पसंद के अनुसार कार्यात्मक इंटरफ़ेस में कई डिफ़ॉल्ट तरीके जोड़ सकते हैं।
दूसरे, यदि किसी इंटरफ़ेस में एक सार विधि है जो 'java.lang.object' के सार्वजनिक तरीकों में से एक को ओवरराइड करती है, तो इसे इंटरफ़ेस का सार तरीका नहीं माना जाता है।
नीचे दिए गए एक वैध कार्यात्मक इंटरफ़ेस उदाहरण है।
@FunctionalInterface public interface FunctionalInterface_one { public void firstInt_method(); @Override public String toString(); //Overridden from Object class @Override public boolean equals(Object obj); //Overridden from Object class }
एक लैम्ब्डा एक्सप्रेशन (या फ़ंक्शन) को एक अनाम फ़ंक्शन, (बिना नाम वाला एक फ़ंक्शन और एक पहचानकर्ता) के रूप में परिभाषित किया जा सकता है। लैम्ब्डा एक्सप्रेशंस को ठीक उसी जगह पर परिभाषित किया गया है, जहां उनकी आवश्यकता होती है, आमतौर पर किसी अन्य फ़ंक्शन के पैरामीटर के रूप में।
एक अलग दृष्टिकोण से, लैम्ब्डा एक्सप्रेशंस के उदाहरणों को व्यक्त करते हैं कार्यात्मक इंटरफेस (ऊपर वर्णित)। लैम्ब्डा एक्सप्रेशंस कार्यात्मक इंटरफ़ेस में मौजूद एकमात्र सार फ़ंक्शन को लागू करते हैं और इस प्रकार कार्यात्मक इंटरफेस को लागू करते हैं।
एक लैम्ब्डा एक्सप्रेशन का मूल सिंटैक्स है:
लैम्ब्डा एक्सप्रेशन का एक मूल उदाहरण है:
उपरोक्त अभिव्यक्ति दो पैरामीटर x और y लेती है और इसका योग x + y लौटाती है। एक्स और वाई के डेटा प्रकार के आधार पर, विधि का उपयोग विभिन्न स्थानों में कई बार किया जा सकता है। इस प्रकार पैरामीटर x और y int या Integer और string से मेल खाएंगे, और संदर्भ के आधार पर, यह दो पूर्णांक (जब पैरामीटर अंतर होगा) या दो स्ट्रिंग्स (जब पैरामीटर एक स्ट्रिंग हैं) को जोड़ देगा।
आइए एक कार्यक्रम को लागू करें जो लैम्ब्डा एक्सप्रेशन प्रदर्शित करता है।
interface MyInterface { void abstract_func(int x,int y); default void default_Fun() { System.out.println('This is default method'); } } class Main { public static void main(String args[]) { //lambda expression MyInterface fobj = (int x, int y)->System.out.println(x+y); System.out.print('The result = '); fobj.abstract_func(5,5); fobj.default_Fun(); } }
आउटपुट:
उपरोक्त कार्यक्रम मापदंडों को जोड़ने और उनकी राशि प्रदर्शित करने के लिए लैम्ब्डा एक्सप्रेशन के उपयोग को दर्शाता है। तब हम इसका उपयोग अमूर्त विधि 'abstract_fun' को लागू करने के लिए करते हैं जिसे हमने इंटरफ़ेस परिभाषा में घोषित किया था। फ़ंक्शन को 'abstract_fun' कहने का नतीजा यह है कि फ़ंक्शन को कॉल करते समय दो पूर्णांकों को पैरामीटर के रूप में पारित किया जाता है।
हम ट्यूटोरियल में बाद में लैम्ब्डा एक्सप्रेशन के बारे में अधिक जानेंगे।
forEach () विधि Iterable इंटरफ़ेस में
Java 8 ने इंटरफ़ेस java.lang.Iter में एक 'forEach' विधि शुरू की है जो संग्रह में तत्वों पर पुनरावृति कर सकता है। 'ForEach' Iterable इंटरफ़ेस में परिभाषित एक डिफ़ॉल्ट विधि है। इसका उपयोग संग्रह वर्गों द्वारा किया जाता है जो Iterable इंटरफ़ेस को इट्रेट तत्वों तक बढ़ाते हैं।
'ForEach' विधि एक एकल पैरामीटर के रूप में कार्यात्मक इंटरफ़ेस लेती है यानी आप एक तर्क के रूप में लैम्ब्डा एक्सप्रेशन पास कर सकते हैं।
ForEach () विधि का उदाहरण।
importjava.util.ArrayList; importjava.util.List; public class Main { public static void main(String[] args) { List subList = new ArrayList(); subList.add('Maths'); subList.add('English'); subList.add('French'); subList.add('Sanskrit'); subList.add('Abacus'); System.out.println('------------Subject List--------------'); subList.forEach(sub -> System.out.println(sub)); } }
आउटपुट:
इसलिए हमारे पास विषयों का एक संग्रह है, यानी सबलिस्ट। हम प्रत्येक तत्व को प्रिंट करने के लिए लेम्बडा एक्सप्रेशन लेने वाली फॉर्च विधि का उपयोग करते हुए उपलेस्ट की सामग्री प्रदर्शित करते हैं।
वैकल्पिक वर्ग
जावा 8 ने “java.util” पैकेज में एक वैकल्पिक वर्ग पेश किया। 'वैकल्पिक' एक सार्वजनिक अंतिम वर्ग है और जावा अनुप्रयोग में NullPointerException से निपटने के लिए उपयोग किया जाता है। वैकल्पिक का उपयोग करके, आप वैकल्पिक कोड या मान को चलाने के लिए निर्दिष्ट कर सकते हैं। वैकल्पिक का उपयोग करके आपको nullPointerException से बचने के लिए बहुत अधिक नल चेक का उपयोग नहीं करना होगा।
प्रोग्राम की असामान्य समाप्ति से बचने और प्रोग्राम को क्रैश होने से बचाने के लिए आप वैकल्पिक वर्ग का उपयोग कर सकते हैं। वैकल्पिक वर्ग वे विधियाँ प्रदान करता है जिनका उपयोग किसी विशेष चर के लिए मान की उपस्थिति की जाँच के लिए किया जाता है।
निम्नलिखित कार्यक्रम वैकल्पिक वर्ग के उपयोग को प्रदर्शित करता है।
import java.util.Optional; public class Main{ public static void main(String[] args) { String[] str = new String[10]; OptionalcheckNull = Optional.ofNullable(str[5]); if (checkNull.isPresent()) { String word = str[5].toLowerCase(); System.out.print(str); } else System.out.println('string is null'); } }
आउटपुट:
इस कार्यक्रम में, हम यह जांचने के लिए वैकल्पिक वर्ग की 'अशक्त' संपत्ति का उपयोग करते हैं कि क्या स्ट्रिंग अशक्त है। यदि यह है, तो उपयोगकर्ता के लिए उपयुक्त संदेश मुद्रित किया जाता है।
डिफ़ॉल्ट और स्थैतिक तरीके इंटरफेस में
जावा 8 में, आप इंटरफ़ेस में ऐसे तरीके जोड़ सकते हैं जो अमूर्त नहीं हैं यानी आपके पास मेथड इम्प्लीमेंटेशन के साथ इंटरफेस हो सकता है। विधि कार्यान्वयन के साथ इंटरफेस बनाने के लिए आप डिफ़ॉल्ट और स्टेटिक कीवर्ड का उपयोग कर सकते हैं। डिफ़ॉल्ट तरीके मुख्य रूप से लैम्ब्डा एक्सप्रेशन कार्यक्षमता को सक्षम करते हैं।
डिफ़ॉल्ट तरीकों का उपयोग करके आप अपने पुस्तकालयों में अपने इंटरफेस में नई कार्यक्षमता जोड़ सकते हैं। यह सुनिश्चित करेगा कि पुराने संस्करणों के लिए लिखा गया कोड उन इंटरफेस (बाइनरी संगतता) के साथ संगत है।
आइए एक उदाहरण के साथ डिफ़ॉल्ट विधि को समझें:
import java.util.Optional; interface interface_default { default void default_method(){ System.out.println('I am default method of interface'); } } class derived_class implements interface_default{ } class Main{ public static void main(String[] args){ derived_class obj1 = new derived_class(); obj1.default_method(); } }
आउटपुट:
हमारे पास एक इंटरफ़ेस है जिसका नाम 'interface_default' है एक डिफ़ॉल्ट कार्यान्वयन के साथ विधि default_method ()। अगला, हम एक वर्ग 'व्युत्पन्न_क्लास' को परिभाषित करते हैं जो इंटरफ़ेस 'इंटरफ़ेस_डेफ़ॉल्ट' को लागू करता है।
ध्यान दें कि हमने इस वर्ग में कोई इंटरफ़ेस विधि लागू नहीं की है। फिर मुख्य फ़ंक्शन में, हम क्लास 'व्युत्पन्न' का एक ऑब्जेक्ट बनाते हैं और सीधे क्लास में परिभाषित किए बिना इंटरफ़ेस के 'default_method' को कॉल करते हैं।
यह इंटरफ़ेस में डिफ़ॉल्ट और स्थिर तरीकों का उपयोग है। हालाँकि, यदि कोई वर्ग डिफ़ॉल्ट विधि को अनुकूलित करना चाहता है तो आप विधि को लागू करके अपना स्वयं का कार्यान्वयन प्रदान कर सकते हैं।
विधि संदर्भ
जावा 8 में पेश किया गया मेथड रेफरेंस फीचर लैम्ब्डा एक्सप्रेशंस के लिए एक शॉर्टहैंड नोटेशन है, जिसे फंक्शनल इंटरफेस की विधि कहा जाता है। इसलिए हर बार जब आप किसी विधि को संदर्भित करने के लिए एक लैम्ब्डा एक्सप्रेशन का उपयोग करते हैं, तो आप अपने लैम्ब्डा एक्सप्रेशन को विधि संदर्भ से बदल सकते हैं।
विधि संदर्भ का उदाहरण।
import java.util.Optional; interface interface_default { void display(); } class derived_class{ public void classMethod(){ System.out.println('Derived class Method'); } } class Main{ public static void main(String[] args){ derived_class obj1 = new derived_class(); interface_default ref = obj1::classMethod; ref.display(); } }
आउटपुट:
इस कार्यक्रम में, हमारे पास एक सार विधि 'प्रदर्शन ()' के साथ एक इंटरफ़ेस 'interface_default' है। इसके बाद, एक वर्ग 'व्युत्पन्न_क्लास' है जिसमें एक सार्वजनिक पद्धति 'क्लासमैथोड' है जो एक संदेश को प्रिंट करता है।
मुख्य फ़ंक्शन में, हमारे पास क्लास के लिए एक ऑब्जेक्ट है, और फिर हमारे पास इंटरफ़ेस का एक संदर्भ है जो obj1 (क्लास ऑब्जेक्ट) के माध्यम से क्लास विधि 'क्लासमैथोड' का संदर्भ देता है। अब जब एब्स्ट्रैक्ट मेथड डिस्प्ले को इंटरफेस रिफरेंस द्वारा बुलाया जाता है, तब क्लासमैथोड की सामग्री प्रदर्शित होती है।
संग्रह पर थोक डेटा संचालन के लिए जावा स्ट्रीम एपीआई
स्ट्रीम एपीआई अभी तक जावा 8. में पेश किया गया एक और बड़ा बदलाव है। स्ट्रीम एपीआई का उपयोग वस्तुओं के संग्रह को संसाधित करने के लिए किया जाता है और यह एक अलग प्रकार के चलना का समर्थन करता है। एक स्ट्रीम वस्तुओं (तत्वों) का एक अनुक्रम है जो आपको वांछित परिणामों का उत्पादन करने के लिए विभिन्न तरीकों को पाइपलाइन करने की अनुमति देता है।
स्ट्रीम डेटा संरचना नहीं है और यह संग्रह, सरणियों या अन्य चैनलों से अपना इनपुट प्राप्त करती है। हम धाराओं का उपयोग करके विभिन्न मध्यवर्ती संचालन को पाइप कर सकते हैं और टर्मिनल संचालन परिणाम वापस कर सकते हैं। हम एक अलग जावा ट्यूटोरियल में अधिक विस्तार से स्ट्रीम एपीआई पर चर्चा करेंगे।
जावा दिनांक समय एपीआई
जावा 8 पैकेज java.time के तहत एक नई तिथि-समय एपीआई पेश करता है।
उनमें से सबसे महत्वपूर्ण वर्ग हैं:
- स्थानीय: सरलीकृत तारीख-समय एपीआई जिसमें समयक्षेत्र हैंडलिंग की कोई जटिलता नहीं है।
- Zoned: विभिन्न टाइमज़ोन से निपटने के लिए विशेष तिथि-समय एपीआई।
पिंड खजूर
दिनांक वर्ग जावा 8 में अप्रचलित हो गया है।
निम्नलिखित नई कक्षाएं शुरू की गई हैं:
- लोकलडेट क्लास एक तारीख को परिभाषित करता है। इसका समय या समय-क्षेत्र के लिए कोई प्रतिनिधित्व नहीं है।
- स्थानीय समय कक्षा एक समय को परिभाषित करता है। यह दिनांक या समय-क्षेत्र के लिए कोई प्रतिनिधित्व नहीं है।
- LocalDateTime वर्ग एक तिथि-समय को परिभाषित करता है। इसमें टाइम-ज़ोन का कोई प्रतिनिधित्व नहीं है।
दिनांक कार्यक्षमता के साथ समय-क्षेत्र की जानकारी को शामिल करने के लिए, आप लैम्ब्डा का उपयोग कर सकते हैं जो 3 कक्षाएं प्रदान करता है यानी ऑफसेटसेट, ऑफसेटसेटेट और ऑफसेटसेटेट। यहां टाइमज़ोन ऑफसेट को एक अन्य वर्ग - 'जोनआईड' का उपयोग करके दिखाया गया है। हम इस विषय को इस जावा श्रृंखला के बाद के भागों में विस्तार से शामिल करेंगे।
गैंडा जावास्क्रिप्ट इंजन
जावा 8 ने जावास्क्रिप्ट के लिए एक बहुत ही बेहतर इंजन पेश किया, अर्थात् नैशोर्न जो मौजूदा राइनो की जगह लेता है। नैशॉर्न सीधे कोड को मेमोरी में संकलित करता है और फिर JVM को बाईटेकोड पास करता है जिससे प्रदर्शन में 10 गुना सुधार होता है।
नैशॉर्न एक नया कमांड-लाइन टूल - jjs पेश करता है जो कंसोल पर जावास्क्रिप्ट कोड को निष्पादित करता है।
चलिए एक जावास्क्रिप्ट फ़ाइल बनाते हैं a j sample.js ’जिसमें निम्न कोड होता है।
print (‘Hello, World!!’);
कंसोल में निम्न कमांड दें:
C: Java jjs sample.js
आउटपुट: नमस्ते दुनिया!!
हम इंटरैक्टिव मोड में जावास्क्रिप्ट प्रोग्राम भी चला सकते हैं और कार्यक्रमों के लिए तर्क भी प्रदान कर सकते हैं।
बेस 64 एनकोड डिकोड
जावा 8 में बेस 64 एनकोडिंग के लिए इनबिल्ट इनकोड और डीकोड है। बेस 64 एनकोडिंग के लिए वर्ग java.util.Base64 है।
यह वर्ग तीन बेस 64 एनकोड और डिकोडर प्रदान करता है:
- मूल: इसमें, आउटपुट को A-Za-z0-9 + / के बीच वर्णों के समूह में मैप किया जाता है। एनकोडर द्वारा आउटपुट में कोई लाइन फीड नहीं जोड़ा जाता है और डिकोडर उपरोक्त के अलावा किसी भी वर्ण को अस्वीकार करता है।
- URL: यहां आउटपुट URL है और फ़ाइल नाम सुरक्षित A-Za-z0-9 + / के बीच वर्णों के सेट पर मैप किया जाता है।
- MIME: इस प्रकार के एनकोडर में, आउटपुट को MIME फ्रेंडली प्रारूप में मैप किया जाता है।
संग्रह एपीआई सुधार
Java 8 ने संग्रह एपीआई के लिए निम्नलिखित नए तरीके जोड़े हैं:
- forEachRemaining (उपभोक्ता कार्रवाई): यह एक डिफ़ॉल्ट विधि है और यह Iterator के लिए है। यह शेष तत्वों में से प्रत्येक के लिए 'कार्रवाई' करता है जब तक कि सभी तत्वों को संसाधित नहीं किया जाता है या 'कार्रवाई' एक अपवाद फेंकता है।
- संग्रह निष्कासन के लिए तयशुदा तरीका (फ़िल्टर को समर्पित करें): यह संग्रह के उन सभी तत्वों को हटा देता है जो दिए गए 'फ़िल्टर' को संतुष्ट करता है।
- Spliterator (): यह एक संग्रह विधि है और spliterator उदाहरण देता है जिसका उपयोग आप या तो अनुक्रमिक या समानांतर फैशन में तत्वों को ट्रेस करने के लिए कर सकते हैं।
- मानचित्र संग्रह में प्रतिस्थापन (), गणना () और मर्ज () विधियां हैं।
- प्रदर्शन को बढ़ाने के लिए मुख्य टकराव वाले हैशपॉप वर्ग में सुधार किया गया है।
कॉनएरेमिली एपीआई परिवर्तन / संवर्द्धन
समवर्ती एपीआई में महत्वपूर्ण वृद्धि निम्नलिखित हैं:
कैसे ग्रहण में testng xml फ़ाइल बनाने के लिए
- ConcurrentHashMap निम्नलिखित विधियों के साथ बढ़ाया जाता है:
- गणना (),
- प्रत्येक के लिए (),
- forEachEntry (),
- forEachKey (),
- forEachValue (),
- जाओ (),
- कम करना () और
- खोज कर ()
- निष्पादकों के लिए 'newWorkStealingPool ()' विधि एक कार्य-चोरी धागा पूल बनाती है। यह उपलब्ध प्रोसेसर का उपयोग अपने लक्ष्य समानता स्तर के रूप में करता है।
- विधि 'कंप्लीटफ्यूबल' वह है जिसे हम स्पष्ट रूप से पूरा कर सकते हैं (इसके मूल्य और स्थिति को निर्धारित करके)।
जावा आईओ सुधार
जावा 8 में किए गए IO सुधारों में शामिल हैं:
- Files.list (पथ dir): यह एक jlazily आबादी वाली स्ट्रीम देता है, जिसका प्रत्येक तत्व डायरेक्टरी में प्रविष्टि है।
- Files.lines (पथ पथ): एक स्ट्रीम से सभी लाइनों को पढ़ता है।
- Files.find (): किसी दिए गए प्रारंभिक फ़ाइल में निहित फ़ाइल ट्री में फ़ाइलों की खोज करें और एक पथ द्वारा आबादी वाली धारा लौटाता है।
- बफ़रड्रेडर.लाइन्स (): बफ़रडियर से पढ़ी गई लाइनों के रूप में इसके हर तत्व के साथ एक धारा देता है।
विविध कोर एपीआई सुधार
हमारे पास निम्नलिखित misc API सुधार हैं:
- आसानी से उदाहरण बनाने के लिए थ्रेडलोक की स्टैटिक विधि withInitial (आपूर्तिकर्ता आपूर्तिकर्ता)।
- इंटरफ़ेस 'तुलनित्र' प्राकृतिक आदेश रिवर्स ऑर्डर आदि के लिए डिफ़ॉल्ट और स्थिर तरीकों के साथ बढ़ाया जाता है।
- इंटेगर, लॉन्ग और डबल रैपर वर्गों में न्यूनतम (), अधिकतम () और सम () विधियां हैं।
- बूलियन क्लास को लॉजिकलएंड (), लॉजिकलऑर () और लॉजिकलएक्सोर () तरीकों से बढ़ाया जाता है।
- मैथ क्लास में कई उपयोगिता विधियां पेश की जाती हैं।
- JDBC-ODBC ब्रिज को हटा दिया गया है।
- PermGen मेमोरी स्पेस हटा दी जाती है।
निष्कर्ष
इस ट्यूटोरियल में, हमने उन प्रमुख विशेषताओं पर चर्चा की है जिन्हें जावा 8 रिलीज़ में जोड़ा गया था। जैसा कि जावा 8 जावा से एक प्रमुख रिलीज है, यह महत्वपूर्ण है कि आप उन सभी विशेषताओं और संवर्द्धन को जानते हैं जो इस रिलीज के हिस्से के रूप में किए गए थे।
यद्यपि नवीनतम जावा संस्करण 13 है, फिर भी जावा 8 सुविधाओं से परिचित होना एक अच्छा विचार है। इस ट्यूटोरियल में चर्चा की गई सभी विशेषताएं अभी भी जावा के नवीनतम संस्करण में मौजूद हैं और हम इस श्रृंखला में बाद में व्यक्तिगत विषयों के रूप में चर्चा करेंगे।
हमें उम्मीद है कि इस ट्यूटोरियल ने आपको विभिन्न जावा 8 सुविधाओं के बारे में जानने में मदद की थी !!
अनुशंसित पाठ
- कोड उदाहरण के साथ जावा ऐरे लेंथ ट्यूटोरियल
- जावा 'यह' कीवर्ड: कोड उदाहरणों के साथ ट्यूटोरियल
- उदाहरण के साथ जावा इंटरफेस और एब्सट्रैक्ट क्लास ट्यूटोरियल
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- जावा परिनियोजन: जावा जार फ़ाइल का निर्माण और निष्पादन
- C ++ Vs Java: C ++ और Java के बीच शीर्ष 30 अंतर उदाहरणों के साथ
- MongoDB सॉर्ट () उदाहरणों के साथ विधि
- उदाहरणों के साथ सेलेनियम में जावा की अनिवार्यता का अन्वेषण करें