Java 7 What's New
There are a lot of things to consider in a recent Java release . Of course, we were all saddened by the transfer of Project Lambda and some other goodies to JDK8, but nonetheless, this release also brought something useful to the arsenal of the java developer. Under the cat you can find a more detailed overview of the innovations. For the most interesting of them, most likely, additional articles with examples of use will be written.Virtual machine
Invokedynamic
A long-awaited solution for fans of dynamic programming languages, a solution that allows you to interact with dynamic languages with virtually no loss of performance. JVM developers praise this creation very much, but, unfortunately, have not yet provided examples of its use in real life. There is some documentation on the project page , but it is not at all trivial. Therefore, in this regard, we can expect articles.
Strict binary class file validation
In Java 7, a new verifier was introduced , called the "typechecking verifier", which works somewhat faster and supports new language features. This verifier will definitely be used for binaries of version 51 and later, i.e.> = SE7.
Syntactic sugar
A lot has already been written about Project Coin , including on the Habré, so he, I believe, does not need a further introduction. However, you can always correct my error in the comments :) It is worth noting that coin was divided into two parts, and the most anxious expected, containing amenities like simplified collection creation, will not be included in SE 7.Core changes
Classloader architecture update
The new version introduces corrections to the classloader to avoid deadlocks in non-hierarchical boot loader topologies. Thanks to the new classloader, the developer’s ability to load classes has significantly expanded. You can read in more detail here , if you wish, you can also write an article.
The close method for URLClassLoader
There is nothing special to say here: now you can free the resources that the classloader holds. More details here .
Updates for java.util.concurrent and collections
The new release provides many useful new libraries for multithreaded applications. About one of them, Phaser , already wrote on a geek magazine In addition, it includes a lightweight fork / join (UPD: description article ) and some more barriers, concurrent versions of decks on linked lists and a thread-local random number generator. A more detailed expectation is expected in a separate article.
Internationalization
Unicode 6.0
Now the latest supported version of Unicode is 6.0.
Improving java.util.Locale
Now this class supports IETF BCP 47 (Labels for defining languages) and UTR 35 (localized language markup for languages)
Separated user locale and GUI locale
Now text formatting and displaying something on the screen have independent locales. More details can be found in the updated javadoc .
I / O and networking
NIO.2
The new API, which also does not need a special introduction, is for accessing the file system, scalable asynchronous IO-interaction, full-fledged work with zip / jar archives as a file system, and more. It makes sense to make all innovations in a separate topic. You can get acquainted with the official documentation here .
Standards Support
Added SCTP support for Solaris, SDP to support InfitiBand on Linux and Solaris, support for the IPv6 stack introduced in Windows Vista, and support for TLS 1.2
Security and Encryption
Standard elliptic curve algorithms are now available from the box. True, the official release did not give instructions as to where to find them. A surface search on javax.crypto did not return any results.Database
JDBC has been updated to 4.1, Rowset to version 1.1. You can read more in the documentation: java.sql and javax.sql.rowset .Client part
XRender Pipeline for Java2D
Thanks to the XRender extension for X11, Java2D has access to most of the capabilities of modern GPUs.
Introducing APIs for New Graphics Features
In java 6u10, support for new features appeared, such as translucent windows and windows of arbitrary shapes, just like mixing heavy and light graphics. Now an API has appeared for this. You can read more in the documentation , and it is possible that a post will soon appear on this topic.
New look-and-feel
Added a new look-and-feel. According to the developers, it belongs to a new generation, but I personally was not impressed. Although, of course, this is in every way better than what it was before. Screenshots are here .
New JXLayer
There is no particularly detailed information about him; there is a link to the official project .
New sound synthesizer
To replace the old proprietary synthesizer came a new one, called Gervill . The developers praise him, but I can not say anything about this.
Web
Updated XML stack, now uses versions of JAXP 1.4, JAXB 2.2a, and JAX-WS 2.2.Control
MBeans can now report CPU utilization of the entire system and the JVM and are able to send notifications when garbage collection occurs.So, most of the innovations are covered. Please unsubscribe in the comments, what would you like to read more.