
In the
recent release of Java, a lot of things have appeared that are worth paying attention to. Of course, we were all upset by the transfer of
Project Lambda and some other snacks to JDK8, but nevertheless, this release also brought something useful to the java-developer’s arsenal. Under the cat you can find a more detailed overview of the innovations. For the most interesting of them, more likely, additional articles will be written with examples of use.
Virtual machine
Invokedynamic
A long-awaited solution for fans of dynamic programming languages, which allows interacting with dynamic languages ​​practically without 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, you can expect an article.
Strict validation of binary class files
In Java 7, a new
verifier was introduced, called “typechecking verifier”, which works somewhat faster and supports new language features. This verifier will necessarily be used for binary versions 51 and more, that is,> = SE7.
Syntactic sugar
About
Project Coin has already been written a lot, including in the Habré, so I think it does not need further presentation. However, you can always correct my fallacy in the comments :) It is worth noting that the coin was broken into two parts, and the most reverently awaiting, containing amenities such as a simplified collection creation, will not go into SE 7.
')
Core changes
Updating the classloader's architecture
The new version fixes the classloader to avoid deadlocks in the non-hierarchical topology loaders. Thanks to the new classloader, the developer has significantly increased the ability to load classes. More details can be read
here , if you wish, you can also write an article.
Close method for URLClassLoader
There’s really nothing to say: now you can free up the resources that the classloader holds. Read more
here .
Updates for java.util.concurrent and collections
The new release provides many new useful libraries for multi-threaded applications. About one of them,
Phaser , already
wrote on Habré. In addition to it, a lightweight fork / join (UPD:
an article with a description ) and some other barriers, concurrent versions of decks on connected lists, and a thread-local random number generator are included. A more detailed wait is expected in a separate article.
Internationalization
Unicode 6.0
Now the latest supported version of Unicode is 6.0.
Java.util.Locale improvements
Now this class supports
IETF BCP 47 (Labels for language definitions) and
UTR 35 (localized language markup languages)User locale and GUI locale are separated.
Now the formatting of the text and the display of something on the screen have independent locales. More details can be found in the updated
javadoc .
Input and output and work with the network
NIO.2
Also, a new API that does not require a special presentation for accessing the file system, scalable asynchronous IO interaction, full-fledged work with zip / jar archives as with the file system and so on. All innovations it makes sense to make a separate topic. You can read the official documentation
here .
Standards support
Added
SCTP support for Solaris, SDP to support
InfitiBand on Linux and Solaris, support for the new IPv6 stack in Windows Vista, and support for
TLS 1.2Security and Encryption
Standard elliptic curve algorithms are now available from the box. True, in the official release they did not give instructions as to where to find them. A surface search on javax.crypto did not give any results.
Database
JDBC updated to 4.1, Rowset to version 1.1. More information can be found in the documentation:
java.sql and
javax.sql.rowset .
Client part
XRender Conveyor for Java2D
Thanks to the XRender X11 expansion, Java2D has access to much of the power of modern GPUs.
API introduction for new graphics features
In java 6u10, there is support for new features such as translucent windows and windows of arbitrary shape, exactly like mixing heavy and lightweight graphics. Now for this API appeared. You can read more in the
documentation , and it is quite possible that a post will soon appear on this topic.
New look-and-feel
Added new look-and-feel. According to the developers, it belongs to a new generation, but personally I was not impressed. Although, of course, this is all better than what it was before. Screenshots are
here .
New JXLayer Decator
About him not to find particularly detailed information, 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’t say anything about that.
Web
Updated XML stack, now uses JAXP 1.4, JAXB 2.2a, and JAX-WS 2.2.
Control
MBeans can now report CPU utilization for both the entire system and the JVM and can send notifications when garbage collection occurs.
So, covered most of the innovations. Please write in the comments, what would you like to read more.