Java Platform, Standard Edition 8 is a major feature release. This document summarizes features and enhancements in Java SE 8 and in JDK 8, Oracle's implementation of Java SE 8. Click the component name for a more detailed description of the enhancements for that component.
java.util.stream package provide a Stream API to support functional-style operations on streams of elements. The Stream API is integrated into the Collections API, which enables bulk operations on collections, such as sequential or parallel map-reduce transformations.Compact Profiles contain predefined subsets of the Java SE platform and enable applications that do not require the entire Platform to be deployed and run on small devices.
AccessController.doPrivileged that enables code to assert a subset of its privileges, without preventing the full traversal of the stack to check for other permissionsjava.security.DomainLoadStoreParameter, and the new command option-importpassword for the keytool utilityjava.security.cert.PKIXRevocationChecker class for configuring revocation checking of X.509 certificatesSwingNode class enables developers to embed Swing content into JavaFX applications. See theSwingNode javadoc andEmbedding Swing Content in JavaFX Applications.javafx.print package provides the public classes for the JavaFX Printing API. See thejavadoc for more information.Shape3D (Box,Cylinder,MeshView, andSphere subclasses),SubScene,Material,PickResult,LightBase (AmbientLight andPointLight subclasses) , andSceneAntialiasing API classes have been added to the JavaFX 3D Graphics library. TheCamera API class has also been updated in this release. See the corresponding class javadoc forjavafx.scene.shape.Shape3D,javafx.scene.SubScene,javafx.scene.paint.Material,javafx.scene.input.PickResult,javafx.scene.SceneAntialiasing, and theGetting Started with JavaFX 3D Graphics document.WebView class provides new features and improvements. ReviewSupported Features of HTML5 for more information about additional HTML5 features including Web Sockets, Web Workers, and Web Fonts.jjs command is provided to invoke the Nashorn engine.java command launches JavaFX applications.java man page has been reworked.jdeps command-line tool is provided for analyzing class files.jarsigner tool has an option for requesting a signed time stamp from a Time Stamping Authority (TSA).-parameters option of thejavac command can be used to store formal parameter names and enable the Reflection API to retrieve formal parameter names.javac command.javac tool now has support for checking the content ofjavadoc comments for issues that could lead to various problems, such as invalid HTML or accessibility issues, in the files that are generated whenjavadoc is run. The feature is enabled by the new-Xdoclint option. For more details, see the output from running "javac -X". This feature is also available in thejavadoc tool, and is enabled there by default.javac tool now provides the ability to generate native headers, as needed. This removes the need to run thejavah tool as a separate step in the build pipeline. The feature is enabled injavac by using the new-h option, which is used to specify a directory in which the header files should be written. Header files will be generated for any class which has either native methods, or constant fields annotated with a new annotation of typejava.lang.annotation.Native.javadoc tool supports the newDocTree API that enables you to traverse Javadoc comments as abstract syntax trees.javadoc tool supports the new Javadoc Access API that enables you to invoke the Javadoc tool directly from a Java application, without executing a new process. See thejavadoc what's new page for more information.javadoc tool now has support for checking the content ofjavadoc comments for issues that could lead to various problems, such as invalid HTML or accessibility issues, in the files that are generated whenjavadoc is run. The feature is enabled by default, and can also be controlled by the new-Xdoclint option. For more details, see the output from running "javadoc -X". This feature is also available in thejavac tool, although it is not enabled by default there.URLPermission is now used to allow connections back to the server from which they were started.SocketPermission is no longer granted.Date-Time Package- a new set of packages that provide a comprehensive date-time model.
SelectorProvider implementation for Solaris based on the Solaris event port mechanism. To use, run with the system propertyjava.nio.channels.spi.Selector set to the valuesun.nio.ch.EventPortSelectorProvider.<JDK_HOME>/jre/lib/charsets.jar filejava.lang.String(byte[], *) constructor and thejava.lang.String.getBytes() method.java.net.URLPermission has been added.java.net.HttpURLConnection, if a security manager is installed, calls that request to open a connection require permission.java.util.concurrent package.java.util.concurrent.ConcurrentHashMap class to support aggregate operations based on the newly added streams facility and lambda expressions.java.util.concurrent.atomic package to support scalable updatable variables.java.util.concurrent.ForkJoinPool class to support a common pool.java.util.concurrent.locks.StampedLock class has been added to provide a capability-based lock with three modes for controlling read/write access.UseAES andUseAESIntrinsics flags are available to enable the hardware-based AES intrinsics for Intel hardware. The hardware must be 2010 or newer Westmere hardware.Note: AES intrinsics are only supported by the Server VM.For example, to enable hardware AES, use the following flags:-XX:+UseAES -XX:+UseAESIntrinsics
To disable hardware AES use the following flags:-XX:-UseAES -XX:-UseAESIntrinsics