📜 ⬆️ ⬇️

Overview of innovations in Java 7

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.2

Security 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.

Source: https://habr.com/ru/post/125202/


All Articles