Java Language
जावा एसई 7 सुविधाएँ
खोज…
परिचय
टिप्पणियों
नई जावा एसई 7 प्रोग्रामिंग भाषा सुविधाएँ
- बाइनरी लिटल्स : बाइनरी नंबर सिस्टम का उपयोग करके अभिन्न प्रकार (बाइट, शॉर्ट, इंट, और लॉन्ग) को भी व्यक्त किया जा सकता है। एक द्विआधारी शाब्दिक निर्दिष्ट करने के लिए, उपसर्ग 0 बी या 0 बी को संख्या में जोड़ें।
- स्विच में स्ट्रिंग विवरण : आप एक स्विच स्टेटमेंट की अभिव्यक्ति में एक स्ट्रिंग ऑब्जेक्ट का उपयोग कर सकते हैं
- ट्राई-विथ-रिसोर्स स्टेटमेंट : ट्राई-विथ-रिसोर्स स्टेटमेंट एक ट्राइ स्टेटमेंट है, जो एक या अधिक संसाधनों की घोषणा करता है। एक संसाधन एक वस्तु के रूप में है जिसे प्रोग्राम के साथ समाप्त होने के बाद बंद किया जाना चाहिए। संसाधन के साथ-साथ कथन यह सुनिश्चित करता है कि प्रत्येक संसाधन विवरण के अंत में बंद हो। कोई भी ऑब्जेक्ट जो java.lang.AutoCloseable को लागू करता है, जिसमें सभी ऑब्जेक्ट शामिल हैं जो java.io.Closeable को लागू करते हैं, एक संसाधन के रूप में उपयोग किया जा सकता है।
- कई प्रकार के अपवादों को पकड़ना और बेहतर प्रकार की जाँच के साथ रैथ्रोइंग अपवादों को पकड़ना: एक एकल पकड़ ब्लॉक एक से अधिक प्रकार के अपवाद को संभाल सकता है। यह सुविधा कोड दोहराव को कम कर सकती है और अत्यधिक व्यापक अपवाद को पकड़ने के लिए प्रलोभन को कम कर सकती है।
- संख्यात्मक साहित्य में अंडरस्कोर : किसी भी संख्या के अंडरस्कोर वर्ण (_) संख्यात्मक अंक में अंकों के बीच कहीं भी दिखाई दे सकते हैं। यह सुविधा आपको उदाहरण के लिए, संख्यात्मक शाब्दिक अंकों के समूहों को अलग करने में सक्षम बनाती है, जिससे आपके कोड की पठनीयता में सुधार हो सकता है।
- जेनेरिक इंस्टेंस क्रिएशन के लिए टाइप इंक्वायरी : आप जेनरिक क्लास के कंस्ट्रक्टर को टाइप पैरामीटर (<>) के एक खाली सेट के साथ इनवॉइस करने के लिए आवश्यक प्रकार के तर्कों को प्रतिस्थापित कर सकते हैं जब तक कंपाइलर संदर्भ से टाइप आर्ग्युमेंट्स का अनुमान लगा सकता है। कोण कोष्ठक की इस जोड़ी को अनौपचारिक रूप से हीरा कहा जाता है।
- बेहतर संकलक चेतावनियाँ और त्रुटियाँ जब गैर-परिवर्तनीय औपचारिक पैरामीटर का उपयोग करते हैं, तो वर्गास विधियों के साथ
बाइनरी साहित्य
// An 8-bit 'byte' value:
byte aByte = (byte)0b00100001;
// A 16-bit 'short' value:
short aShort = (short)0b1010000101000101;
// Some 32-bit 'int' values:
int anInt1 = 0b10100001010001011010000101000101;
int anInt2 = 0b101;
int anInt3 = 0B101; // The B can be upper or lower case.
// A 64-bit 'long' value. Note the "L" suffix:
long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;
संसाधनों के साथ प्रयास करें
उदाहरण किसी फ़ाइल से पहली पंक्ति पढ़ता है। यह फ़ाइल से डेटा पढ़ने के लिए BufferedReader
एक उदाहरण का उपयोग करता है। BufferedReader
एक संसाधन है जिसे कार्यक्रम के साथ समाप्त होने के बाद बंद किया जाना चाहिए:
static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
इस उदाहरण में, कोशिश-के साथ संसाधनों के बयान में घोषित संसाधन BufferedReader
। ट्राई कीवर्ड के तुरंत बाद घोषणा विवरण कोष्ठक के भीतर दिखाई देता है। जावा एसई 7 में और बाद में, क्लास BufferedReader
, इंटरफ़ेस java.lang.AutoCloseable
लागू करता है। क्योंकि BufferedReader
उदाहरण एक कोशिश के साथ-संसाधन बयान में घोषित किया जाता है, यह कोशिश बयान सामान्य रूप से या अचानक पूरा करता है या नहीं (विधि का एक परिणाम के रूप में की परवाह किए बिना बंद कर दिया जाएगा BufferedReader.readLine
एक फेंकने IOException
।)
न्यूमेरिक लिटरेचर में अंडरस्कोर
निम्नलिखित उदाहरण अन्य तरीकों से पता चलता है कि आप संख्यात्मक अंको में अंडरस्कोर का उपयोग कर सकते हैं:
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;
आप केवल अंकों के बीच अंडरस्कोर लगा सकते हैं; आप निम्न स्थानों पर अंडरस्कोर नहीं लगा सकते:
- किसी संख्या के आरंभ या अंत में
- फ़्लोटिंग पॉइंट शाब्दिक में दशमलव बिंदु के निकट
- एक एफ या एल प्रत्यय से पहले
- उन स्थितियों में जहां अंकों की एक स्ट्रिंग की उम्मीद की जाती है
जेनेरिक इंस्टेंस क्रिएशन के लिए टाइप इन्वेंशन
आप उपयोग कर सकते हैं
Map<String, List<String>> myMap = new HashMap<>();
के बजाय
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
हालाँकि, आप उपयोग नहीं कर सकते
List<String> list = new ArrayList<>();
list.add("A");
// The following statement should fail since addAll expects
// Collection<? extends String>
list.addAll(new ArrayList<>());
क्योंकि यह संकलन नहीं कर सकता। ध्यान दें कि हीरा अक्सर विधि कॉल में काम करता है; हालाँकि, यह सुझाव दिया जाता है कि आप मुख्य रूप से चर घोषणाओं के लिए हीरे का उपयोग करें।
स्विच स्टेटमेंट में स्ट्रिंग्स
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
String typeOfDay;
switch (dayOfWeekArg) {
case "Monday":
typeOfDay = "Start of work week";
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
typeOfDay = "Midweek";
break;
case "Friday":
typeOfDay = "End of work week";
break;
case "Saturday":
case "Sunday":
typeOfDay = "Weekend";
break;
default:
throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
}
return typeOfDay;
}