vm JSR 292: Unterstützung für dynamisch typisierte Sprachen (InvokeDynamic)
Strikte Überprüfung von Klassendateien
lang JSR 334: Kleine Sprachverbesserungen (Project Coin)
Kern Upgrade der Class-Loader-Architektur
Methode zum Schließen eines URLClassLoader
Aktualisierungen von Parallelität und Sammlungen (jsr166y)
i18n Unicode 6.0
Gebietsschemaverbesserung
Trennen Sie das Gebietsschema des Benutzers und das Gebietsschema der Benutzeroberfläche
ionet JSR 203: Weitere neue E / A-APIs für die Java-Plattform (NIO.2)
NIO.2-Dateisystemanbieter für Zip / JAR-Archive
SCTP (Stream Control Transmission Protocol)
SDP (Sockets Direct Protocol)
Verwenden Sie den Windows Vista IPv6-Stack
TLS 1.2
sec Kryptographie mit elliptischen Kurven (ECC)
jdbc JDBC 4.1
Client XRender-Pipeline für Java 2D
Erstellen Sie neue Plattform-APIs für 6u10-Grafikfunktionen
Nimbus Look-and-Feel für Swing
Swing JLayer-Komponente
Gervill Sound Synthesizer [NEU]
web Aktualisieren Sie den XML-Stack
mgmt Enhanced MBeans [AKTUALISIERT]
+1 Code für schwer zu findende Codebeispiele. Können Sie mehr hinzufügen?
Zasz
3
Die verbesserte Typinferenz scheint eine traurige Kopie von C # mit einer seltsamen Änderung zu sein, bei der eine Referenz eingegeben wird, das Objekt jedoch nicht? Was für eine Komödie!
Zasz
1
@ Zasz, ja sicher, es ist in ständiger Verbesserung
Didxga
Die Frage ist also an OP, was ist Ihre Meinung? Sind diese Verbesserungen nur auf der Produktivitätsseite oder können sie die Leistung von Programmen wirklich verbessern? Wenn sich kein Bytecode ändert, können neue Sprachverbesserungen mit dem als 1,5 gekennzeichneten Bytecode verwendet werden?
Dmitriy R
Obwohl dies keine Sprachverbesserung ist, gibt es die neue ObjectsKlasse mit statischen Methoden, um zu vermeiden, dass nach Nullreferenzen gesucht werden muss. Beispiel: if (obj != null && obj.equals(anotherObj))wirdif (Objects.equals(obj, anotherObj))
Carcamano
13
Neues Feature der Java Standard Edition (JSE 7)
Dekorieren Sie Komponenten mit der JLayer-Klasse:
Die JLayer-Klasse ist ein flexibler und leistungsstarker Dekorateur für Swing-Komponenten. Die JLayer-Klasse in Java SE 7 ähnelt im Geist dem JxLayer-Projektprojekt auf java.net. Die JLayer-Klasse basierte ursprünglich auf dem JXLayer-Projekt, die API wurde jedoch separat entwickelt.
Strings in switch Anweisung :
Im JDK 7 können wir ein String-Objekt im Ausdruck einer switch-Anweisung verwenden. Der Java-Compiler generiert im Allgemeinen effizienteren Bytecode aus switch-Anweisungen, die String-Objekte verwenden, als aus verketteten if-then-else-Anweisungen.
Typinferenz für generische Instanz:
Wir können die zum Aufrufen des Konstruktors einer generischen Klasse erforderlichen Typargumente durch einen leeren Satz von Typparametern (<>) ersetzen, solange der Compiler die Typargumente aus dem Kontext ableiten kann. Dieses Paar spitzer Klammern wird informell als Diamant bezeichnet. Java SE 7 unterstützt eine begrenzte Typinferenz für die Erstellung generischer Instanzen. Sie können die Typinferenz nur verwenden, wenn der parametrisierte Typ des Konstruktors aus dem Kontext ersichtlich ist. Das folgende Beispiel wird beispielsweise nicht kompiliert:
List<String> l =newArrayList<>();
l.add("A");
l.addAll(newArrayList<>());
Im Vergleich dazu wird folgendes Beispiel kompiliert:
Abfangen mehrerer Ausnahmetypen und erneutes Auslösen von Ausnahmen mit verbesserter Typprüfung:
In Java SE 7 und höher kann ein einzelner Catch-Block mehr als einen Ausnahmetyp verarbeiten. Diese Funktion kann die Codeduplizierung reduzieren. Betrachten Sie den folgenden Code, der in jedem der catch-Blöcke doppelten Code enthält:
In Releases vor Java SE 7 ist es schwierig, eine gemeinsame Methode zum Entfernen des duplizierten Codes zu erstellen, da die Variable e unterschiedliche Typen hat. Das folgende Beispiel, das in Java SE 7 und höher gültig ist, entfernt den duplizierten Code:
Die catch-Klausel gibt die Arten von Ausnahmen an, die der Block verarbeiten kann, und jeder Ausnahmetyp wird durch einen vertikalen Balken (|) getrennt.
Das Paket java.nio.file
Das java.nio.filePaket und das zugehörige Paket java.nio.file.attribute bieten umfassende Unterstützung für Datei-E / A und für den Zugriff auf das Dateisystem. Ein Zip-Dateisystemanbieter ist auch in JDK 7 verfügbar.
Auf den Punkt! Die zehn besten Google-Suchergebnisse für " Java-Funktionen " geben die (nutzlose) Liste zurück:Simple, Object-Oriented, Portable, Platform independent, Secured...
Marinos An
3
Zusätzlich zu den Aussagen von John Skeet finden Sie hier eine Übersicht über das Java 7-Projekt . Es enthält eine Liste und eine Beschreibung der Funktionen.
Hinweis: JDK 7 wurde am 28. Juli 2011 veröffentlicht. Sie sollten daher jetzt zur offiziellen Java SE-Website gehen .
Zu Ihrer Information, dies ist eine gute Präsentation, aber ziemlich alt und etwas veraltet.
Alex Miller
Ich habe eine Fehlerseite auf Hebräisch erhalten, als ich diesen Link ausprobiert habe. Gibt es irgendwo eine aktuellere Kopie?
Simon Nickerson
1
Sprachänderungen :
-ProjectCoin(small changes)-switch on Strings-try-with-resources
-diamond operator
Bibliotheksänderungen :
-new abstracted file-system API (NIO.2)(with support for virtual filesystems)-improved concurrency libraries
-elliptic curve encryption
-more incremental upgrades
Plattformänderungen :
-support for dynamic languages
Unten finden Sie den Link, der die neu hinzugefügten Funktionen von JAVA 7 erklärt. Die Erklärung ist kristallklar mit den möglichen kleinen Beispielen für jede Funktion:
Die folgende Liste enthält Links zu den Erweiterungsseiten in Java SE 7.
Swing
IO and New IO
NetworkingSecurityConcurrencyUtilitiesRichInternetApplications(RIA)/DeploymentRequesting and CustomizingAppletDecoration in Dragg able AppletsEmbedding JNLP File in AppletTagDeploying without CodebaseHandlingAppletInitializationStatus with EventHandlersJava2DJava XML – JAXP, JAXB, and JAX-WS
Internationalization
java.lang PackageMultithreadedCustomClassLoaders in Java SE 7JavaProgrammingLanguageBinaryLiteralsStrings in switchStatementsThetry-with-resources StatementCatchingMultipleExceptionTypes and RethrowingExceptions with ImprovedTypeCheckingUnderscores in NumericLiteralsTypeInferenceforGenericInstanceCreationImprovedCompilerWarnings and ErrorsWhenUsingNon-ReifiableFormalParameters with VarargsMethodsJavaVirtualMachine(JVM)JavaVirtualMachineSupportforNon-JavaLanguagesGarbage-FirstCollectorJavaHotSpotVirtualMachinePerformanceEnhancements
JDBC
Antworten:
Java SE 7- Funktionen und -Erweiterungen aus den JDK 7-Versionshinweisen
Dies ist die Zusammenfassung der neuen Java 7-Funktionen auf der OpenJDK 7-Funktionsseite :
Codebeispiele für neue Funktionen in Java 1.7
Try-with-Resources-Anweisung
Dies:
wird:
Sie können mehr als eine Ressource zum Schließen deklarieren:
Unterstriche in numerischen Literalen
Saiten im Schalter
Binäre Literale
Verbesserte Typinferenz für die Erstellung generischer Instanzen
wird:
Fang mehrerer Ausnahmen
Dies:
wird:
SafeVarargs
Dies:
wird:
quelle
Objects
Klasse mit statischen Methoden, um zu vermeiden, dass nach Nullreferenzen gesucht werden muss. Beispiel:if (obj != null && obj.equals(anotherObj))
wirdif (Objects.equals(obj, anotherObj))
Neues Feature der Java Standard Edition (JSE 7)
Dekorieren Sie Komponenten mit der JLayer-Klasse:
Die JLayer-Klasse ist ein flexibler und leistungsstarker Dekorateur für Swing-Komponenten. Die JLayer-Klasse in Java SE 7 ähnelt im Geist dem JxLayer-Projektprojekt auf java.net. Die JLayer-Klasse basierte ursprünglich auf dem JXLayer-Projekt, die API wurde jedoch separat entwickelt.
Strings in switch Anweisung :
Im JDK 7 können wir ein String-Objekt im Ausdruck einer switch-Anweisung verwenden. Der Java-Compiler generiert im Allgemeinen effizienteren Bytecode aus switch-Anweisungen, die String-Objekte verwenden, als aus verketteten if-then-else-Anweisungen.
Typinferenz für generische Instanz:
Wir können die zum Aufrufen des Konstruktors einer generischen Klasse erforderlichen Typargumente durch einen leeren Satz von Typparametern (<>) ersetzen, solange der Compiler die Typargumente aus dem Kontext ableiten kann. Dieses Paar spitzer Klammern wird informell als Diamant bezeichnet. Java SE 7 unterstützt eine begrenzte Typinferenz für die Erstellung generischer Instanzen. Sie können die Typinferenz nur verwenden, wenn der parametrisierte Typ des Konstruktors aus dem Kontext ersichtlich ist. Das folgende Beispiel wird beispielsweise nicht kompiliert:
Im Vergleich dazu wird folgendes Beispiel kompiliert:
Abfangen mehrerer Ausnahmetypen und erneutes Auslösen von Ausnahmen mit verbesserter Typprüfung:
In Java SE 7 und höher kann ein einzelner Catch-Block mehr als einen Ausnahmetyp verarbeiten. Diese Funktion kann die Codeduplizierung reduzieren. Betrachten Sie den folgenden Code, der in jedem der catch-Blöcke doppelten Code enthält:
In Releases vor Java SE 7 ist es schwierig, eine gemeinsame Methode zum Entfernen des duplizierten Codes zu erstellen, da die Variable e unterschiedliche Typen hat. Das folgende Beispiel, das in Java SE 7 und höher gültig ist, entfernt den duplizierten Code:
Die catch-Klausel gibt die Arten von Ausnahmen an, die der Block verarbeiten kann, und jeder Ausnahmetyp wird durch einen vertikalen Balken (|) getrennt.
Das Paket java.nio.file
Das
java.nio.file
Paket und das zugehörige Paket java.nio.file.attribute bieten umfassende Unterstützung für Datei-E / A und für den Zugriff auf das Dateisystem. Ein Zip-Dateisystemanbieter ist auch in JDK 7 verfügbar.Quelle: http://ohmjavaclasses.blogspot.com/
quelle
Verbesserungen der Java-Programmiersprache @ Java7
Offizielle Referenz
Offizielle Referenz mit Java8-
Wiki-Referenz
quelle
Simple, Object-Oriented, Portable, Platform independent, Secured...
Zusätzlich zu den Aussagen von John Skeet finden Sie hier eine Übersicht über das Java 7-Projekt . Es enthält eine Liste und eine Beschreibung der Funktionen.
Hinweis: JDK 7 wurde am 28. Juli 2011 veröffentlicht. Sie sollten daher jetzt zur offiziellen Java SE-Website gehen .
quelle
Sprachänderungen :
Bibliotheksänderungen :
Plattformänderungen :
Unten finden Sie den Link, der die neu hinzugefügten Funktionen von JAVA 7 erklärt. Die Erklärung ist kristallklar mit den möglichen kleinen Beispielen für jede Funktion:
http://radar.oreilly.com/2011/09/java7-features.html
quelle
int val 12_15; long phoneNo = 01917_999_720L;
quelle
Ich denke, ForkJoinPool und die damit verbundene Verbesserung des Executor Framework sind eine wichtige Ergänzung in Java 7.
quelle
Die folgende Liste enthält Links zu den Erweiterungsseiten in Java SE 7.
Referenz 1 Referenz 2
quelle