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 Programming Language
-
Lambda Expressions, a new language feature, has been
introduced in this release. They enable you to treat functionality as a
method argument, or code as data. Lambda expressions let you express
instances of single-method interfaces (referred to as functional
interfaces) more compactly.
-
Method references provide easy-to-read lambda expressions for methods that already have a name.
-
Default methods enable new functionality to be added to the
interfaces of libraries and ensure binary compatibility with code
written for older versions of those interfaces.
-
Repeating Annotations provide the ability to apply the same annotation type more than once to the same declaration or type use.
-
Type Annotations provide the ability to apply an annotation
anywhere a type is used, not just on a declaration. Used with a
pluggable type system, this feature enables improved type checking of
your code.
-
Improved type inference.
-
Method parameter reflection.
-
Lambda Expressions, a new language feature, has been
introduced in this release. They enable you to treat functionality as a
method argument, or code as data. Lambda expressions let you express
instances of single-method interfaces (referred to as functional
interfaces) more compactly.
-
Collections
-
Classes in the new
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.
-
Performance Improvement for HashMaps with Key Collisions
-
Classes in the new
-
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.
-
Security
-
Client-side TLS 1.2 enabled by default
-
New variant of
AccessController.doPrivileged
that enables code to assert a subset of its privileges, without preventing the full traversal of the stack to check for other permissions
-
Stronger algorithms for password-based encryption
-
SSL/TLS Server Name Indication (SNI) Extension support in JSSE Server
-
Support for AEAD algorithms: The SunJCE provider is enhanced
to support AES/GCM/NoPadding cipher implementation as well as GCM
algorithm parameters. And the SunJSSE provider is enhanced to support
AEAD mode based cipher suites. See Oracle Providers Documentation, JEP
115.
-
KeyStore enhancements, including the new Domain KeyStore type
java.security.DomainLoadStoreParameter
, and the new command option
-
Client-side TLS 1.2 enabled by default