Java 8: New Features

March 21st, 2012 Leave a comment 2 comments
Like the article?
New Features in Java-8

We have waited in anxious anticipation for the new features that will be available in Java 8, most of which were previously intended for Java 7 but had to be postponed. Now, Oracle promises us a “Revolution, not Evolution” with the new version. What does the future of the Java language hold?

At the 2011 JavaOne conference, Mark Reinhold, the chief architect for Java at Oracle, gave the audience a peek at what to expect in Java 8 and spoke a little about upcoming plans for Java 9. It was unfortunate that of the five key improvements that had been planned in Java 7, two had to be dropped in order to hit the Java build release date. Mark acknowledged that the Java 7 update was important but he hinted that the Java 8 release would change the way the language functioned on a fundamental level. Looking at the upcoming list of features, this is most likely true.

The Java 8 release contains two major projects: Lambda and Jigsaw. In Project Lambda, Java is going to get the capability to work much more effectively with multi-core processing systems. Since this is most likely the hardware that Java will be running on, it makes sense to tweak the processing for better performance on these systems. Project Lambda also includes the addition of a new processing system that allows programming patterns that require modeling of code as data. This new system will allow the convenient use of Lambda expressions, since this is the best way to handle multi-core processors. These new features include:

  • The use of Lambda expressions
  • Expanded target typing
  • Method and constructor references
  • Default methods

If you are wanting more information on the Project Lambda project, go here:

The second exciting addition to Java 8 is Project Jigsaw. The goal of Project Jigsaw is to create a useful way to design and implement a module system in the JDK and then to apply that system to the JDK itself. The point is make handling larger chunks of code more manageable and to promote code re-use across applications or for larger operations. Project Jigsaw will be bringing many new features to the table involving encapsulation, refactoring, versioning and module integration.

Further details about Project Jigsaw are available here:

Additionally from these two projects, there will be some other language features added such as upgrades to the core Java libraries to more easily express parallel calculations on collections and virtual extension methods that allow for the adding of methods to interfaces that specify a references to a default implementation. A new Date/Time API will be added along with support for sensors that will increase deployment options for the code.

Oracle is looking ahead to the future and is already discussing the key areas of development for a candidate Java 9. They are looking at adding a self-tuning JVM, improved native integration and massive multi-core scalability. They are also looking at adding cross language support through a new meta-object protocol and resource management for cloud applications. As Java moves toward becoming the most-used programming language in the world by the size of its developer base, it starts to become an problem keeping everyone happy with new features. The whole package speaks of Oracle maneuvering Java to be the premiere programming language of future applications as they implement what is needed to bring the language forward as well as things that make their developers happy.

Help us spread the word!
  • Twitter
  • Facebook
  • LinkedIn
  • Pinterest
  • Delicious
  • DZone
  • Reddit
  • Sphinn
  • StumbleUpon
  • Google Plus
  • RSS
  • Email
  • Print
If you liked this article, consider enrolling in one of these related courses:
Don't miss another post! Receive updates via email!

2 comments

  1. Lambda expressions is something I am also looking forward.

  2. Ronin says:

    what about unsigned types? i am working on a project at the moment that could benefit heavily from unsigned types particularly unsigned bytes which will save alot of memory overhead for me when the project is used on a large scale

Comment