Java 8 is currently scheduled for general availability in just a little more than a month. You may have heard more than you wanted to about lambda expressions by now, but the changes in Java 8 extend well beyond lambdas. Back in September 2013, M. Hixson, a developer at TechEmpower, took the JDK 8 Developer Preview for a test drive using the IntelliJ IDE preview build, which he found had the best support for Java 8's language features at the time. His comprehensive overview and commentary are still worth a read.
Highlights from the post:
Improvements to the generic type interface
In previous versions of Java the compiler often failed to detect the generic types for a method in the context of nested or chained method invocations. Hixson notes that this was especially frustrating when generic types "seemed 'obvious' to the programmer." As of Java 8, improvements to the generic type interface will enable the compiler to more reliably determine generic types.
Additions to the Collections API
Default implementations of updates to the Java Collections API are provided on all the core interfaces, with more efficient or well-behaved overridden implementations added to all the concrete classes where applicable. Updates improve both semantics and performance, as Hixson demonstrates with examples using the new
Additions to the Java Concurrency API
Among the many additions listed, Hixson highlights
ForkJoinPool.commonPool(), a "completely rewritten"
ConcurrentHashMap<K, V>, the new
CompletableFuture<T> -- "a nice implementation of the
Future interface that provides a ton of methods for performing (and chaining together) asynchronous tasks" -- as especially noteworthy.
Read more of this developer's perspective on everything new in Java 8 ...