जावा 7 में कौन सी नई सुविधाएँ लागू होने जा रही हैं? और वे अब क्या कर रहे हैं?
जवाबों:
यह OpenJDK 7 सुविधाओं पृष्ठ से जावा 7 नई सुविधाओं का सारांश है :
vm JSR 292: गतिशील रूप से टाइप की जाने वाली भाषाओं के लिए समर्थन (InvokeDynamic)
सख्त वर्ग-फ़ाइल जाँच
लैंग जेएसआर 334: लघु भाषा संवर्द्धन (प्रोजेक्ट सिक्का)
कोर अपग्रेड क्लास-लोडर आर्किटेक्चर
URLClassLoader को बंद करने की विधि
संगामिति और संग्रह अपडेट (jsr166y)
i18n यूनिकोड 6.0
लोकल एन्हांसमेंट
अलग-अलग उपयोगकर्ता लोकेल और उपयोगकर्ता-इंटरफ़ेस लोकेल
आयनसेट JSR 203: जावा प्लेटफॉर्म के लिए अधिक नए I / O API (NIO.2)
ज़िप / जार अभिलेखागार के लिए NIO.2 फाइल सिस्टम प्रदाता
SCTP (स्ट्रीम कंट्रोल ट्रांसमिशन प्रोटोकॉल)
एसडीपी (सॉकेट्स डायरेक्ट प्रोटोकॉल)
Windows Vista IPv6 स्टैक का उपयोग करें
टीएलएस 1.2
अण्डाकार-वक्र क्रिप्टोग्राफी (ECC)
jdbc JDBC 4.1
जावा 2 डी के लिए क्लाइंट एक्सेंडर पाइप लाइन
6u10 ग्राफिक्स सुविधाओं के लिए नया प्लेटफ़ॉर्म एपीआई बनाएं
निंबस घुमाओ के लिए देखो और महसूस करो
स्विंग JLayer घटक
ग्रीविल ध्वनि सिंथेसाइज़र [NEW]
वेब XML स्टैक अपडेट करें
mgmt बढ़ी एमबीन्स [अद्यतन]
यह:
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}
हो जाता है:
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
आप एक से अधिक संसाधन बंद करने की घोषणा कर सकते हैं:
try (
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest))
{
// code
}
int one_million = 1_000_000;
String s = ...
switch(s) {
case "quux":
processQuux(s);
// fall-through
case "foo":
case "bar":
processFooOrBar(s);
break;
case "baz":
processBaz(s);
// fall-through
default:
processDefault(s);
break;
}
int binary = 0b1001_1001;
Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
हो जाता है:
Map<String, List<String>> anagrams = new HashMap<>();
यह:
} catch (FirstException ex) {
logger.error(ex);
throw ex;
} catch (SecondException ex) {
logger.error(ex);
throw ex;
}
हो जाता है:
} catch (FirstException | SecondException ex) {
logger.error(ex);
throw ex;
}
यह:
@SuppressWarnings({"unchecked", "varargs"})
public static void printAll(List<String>... lists){
for(List<String> list : lists){
System.out.println(list);
}
}
हो जाता है:
@SafeVarargs
public static void printAll(List<String>... lists){
for(List<String> list : lists){
System.out.println(list);
}
}
Objectsवर्ग है, जिसमें शून्य रेफ़रल्स की जाँच करने से बचने के लिए स्थिर तरीके हैं। उदाहरण: if (obj != null && obj.equals(anotherObj))बन जाता हैif (Objects.equals(obj, anotherObj))
JLayer वर्ग के साथ सजाने के घटक:
JLayer वर्ग स्विंग घटकों के लिए एक लचीला और शक्तिशाली डेकोरेटर है। जावा SE 7 में JLayer क्लास java.net पर JxLayer प्रोजेक्ट प्रोजेक्ट की भावना के समान है। JLayer क्लास शुरू में JXLayer प्रोजेक्ट पर आधारित थी, लेकिन इसका API अलग से विकसित हुआ।
स्विच स्टेटमेंट में स्ट्रिंग्स :
जेडीके 7 में, हम एक स्विच स्टेटमेंट की अभिव्यक्ति में स्ट्रिंग ऑब्जेक्ट का उपयोग कर सकते हैं। जावा कंपाइलर स्विच स्टेटमेंट से आम तौर पर अधिक कुशल बायटेकोड उत्पन्न करता है जो स्ट्रिंग की वस्तुओं का उपयोग करता है यदि जंजीर से तत्कालीन बयानों की तुलना में।
जेनेरिक इंस्टेंस के लिए टाइप करें
जब तक कंपाइलर संदर्भ से प्रकार के तर्कों का अनुमान लगा सकता है, तब तक हम एक सामान्य श्रेणी के कंस्ट्रक्टर को टाइप पैरामीटर (<>) के खाली सेट के साथ संलग्न करने के लिए आवश्यक प्रकार के तर्कों को प्रतिस्थापित कर सकते हैं। कोण कोष्ठक की इस जोड़ी को अनौपचारिक रूप से हीरा कहा जाता है। जावा एसई 7 सामान्य उदाहरण निर्माण के लिए सीमित प्रकार के अनुमान का समर्थन करता है; आप केवल संदर्भ का उपयोग कर सकते हैं यदि संदर्भ से पैरामीटर का प्रकार स्पष्ट है। उदाहरण के लिए, निम्नलिखित उदाहरण संकलित नहीं करता है:
List<String> l = new ArrayList<>();
l.add("A");
l.addAll(new ArrayList<>());
तुलना में, निम्नलिखित उदाहरण संकलित करता है:
List<? extends String> list2 = new ArrayList<>();
l.addAll(list2);बेहतर प्रकार की जाँच के साथ कई अपवाद प्रकार और रीथ्रोइंग अपवाद को पकड़ना:
जावा एसई 7 और बाद में, एक एकल कैच ब्लॉक एक से अधिक प्रकार के अपवाद को संभाल सकता है। यह सुविधा कोड दोहराव को कम कर सकती है। निम्नलिखित कोड पर विचार करें, जिसमें प्रत्येक कैच ब्लॉक में डुप्लिकेट कोड है:
catch (IOException e) {
logger.log(e);
throw e;
}
catch (SQLException e) {
logger.log(e);
throw e;
}
जावा एसई 7 से पहले रिलीज में, डुप्लिकेट किए गए कोड को खत्म करने के लिए एक सामान्य विधि बनाना मुश्किल है क्योंकि चर ई के विभिन्न प्रकार हैं। निम्नलिखित उदाहरण, जो जावा एसई 7 में मान्य है और बाद में, डुप्लिकेट कोड को समाप्त करता है:
catch (IOException|SQLException e) {
logger.log(e);
throw e;
}
कैच क्लॉज अपवादों के प्रकारों को निर्दिष्ट करता है जिन्हें ब्लॉक संभाल सकता है, और प्रत्येक अपवाद प्रकार को एक ऊर्ध्वाधर बार (()) के साथ अलग किया जाता है।
Java.nio.file पैकेज
java.nio.fileपैकेज और इससे संबंधित पैकेज, java.nio.file.attribute, फ़ाइल आई / ओ के लिए और फाइल सिस्टम तक पहुँचने के लिए व्यापक समर्थन प्रदान करते हैं। एक जिप फाइल सिस्टम प्रोवाइडर JDK 7 में भी उपलब्ध है।
जावा प्रोग्रामिंग लैंग्वेज एनहांसमेंट्स @ जावा 7
Simple, Object-Oriented, Portable, Platform independent, Secured...
जॉन स्कीट ने जो कहा उसके अलावा, यहां जावा 7 परियोजना का अवलोकन किया गया है । इसमें एक सूची और सुविधाओं का वर्णन शामिल है।
नोट: JDK 7 को 28 जुलाई 2011 को जारी किया गया था, इसलिए अब आपको आधिकारिक जावा एसई साइट पर जाना चाहिए ।
भाषा परिवर्तन :
-Project Coin (small changes)
-switch on Strings
-try-with-resources
-diamond operator
पुस्तकालय परिवर्तन :
-new abstracted file-system API (NIO.2) (with support for virtual filesystems)
-improved concurrency libraries
-elliptic curve encryption
-more incremental upgrades
प्लेटफ़ॉर्म परिवर्तन :
-support for dynamic languages
नीचे JAVA 7 की नई जोड़ी गई विशेषताओं की व्याख्या करने वाला लिंक दिया गया है, यह व्याख्या प्रत्येक सुविधाओं के लिए संभावित छोटे उदाहरणों के साथ स्पष्ट है:
सामान्य उदाहरण निर्माण के लिए डायमंड (<>) ऑपरेटर का उपयोग करना
Map<String, List<Trade>> trades = new TreeMap <> ();
स्विच स्टेटमेंट में स्ट्रिंग्स का उपयोग करना
String status= “something”;
switch(statue){
case1:
case2:
default:
}
संख्यात्मक शाब्दिकों में अंडरस्कोर
int वैल 12_15; लंबे फोनन = 01917_999_720L;
"का उपयोग करके कई अपवाद फेंकने के लिए एकल कैच स्टेटमेंट का उपयोग करना" | ऑपरेटर
catch(IOException | NullPointerException ex){
ex.printStackTrace();
}
बंद करने () संसाधनों की आवश्यकता नहीं है क्योंकि जावा 7 प्रयास-साथ-संसाधन विवरण प्रदान करता है
try(FileOutputStream fos = new FileOutputStream("movies.txt");
DataOutputStream dos = new DataOutputStream(fos)) {
dos.writeUTF("Java 7 Block Buster");
} catch(IOException e) {
// log the exception
}
उपसर्ग "0 बी" या "0 बी" के साथ द्विआधारी शब्द
निम्नलिखित सूची में जावा एसई 7 में एन्हांसमेंट पेजों के लिंक शामिल हैं।
Swing
IO and New IO
Networking
Security
Concurrency Utilities
Rich Internet Applications (RIA)/Deployment
Requesting and Customizing Applet Decoration in Dragg able Applets
Embedding JNLP File in Applet Tag
Deploying without Codebase
Handling Applet Initialization Status with Event Handlers
Java 2D
Java XML – JAXP, JAXB, and JAX-WS
Internationalization
java.lang Package
Multithreaded Custom Class Loaders in Java SE 7
Java Programming Language
Binary Literals
Strings in switch Statements
The try-with-resources Statement
Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
Underscores in Numeric Literals
Type Inference for Generic Instance Creation
Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
Java Virtual Machine (JVM)
Java Virtual Machine Support for Non-Java Languages
Garbage-First Collector
Java HotSpot Virtual Machine Performance Enhancements
JDBC