A Quick Introduction to Java 8

Java is one of the most popular programming languages. However, recently many other programming languages have come and some of them even running on top of the Java Virtual Machine (JVM). Many of these languages support newer programming practices like functional programming and comes with a bunch of out of the box functionalities that abstract away most of the low level details from the programmer.

 

Java 8 is a response to these programming languages and features. Java 8 has introduced many new features like the functional programming support, behavior parameterization, lambdas, streams etc. that embrace the functional programming style and abstracts away low level details from the programmer. It has also introduced many improvements to existing APIs and have also  introduced few alternate APIs. 

 

Some of the new features and improvements in Java 8 are listed below:

  • Functional programming style

  • Functional interfaces

  • Improved interfaces with default and static methods.

  • Lambda expressions

  • Out of the box interfaces for reuse.

  • Behavior parameterization

  • New Date and Time API similar to popular JODA time

  • Internal iterations through the new forEach loop

  • Streams with pipeline model

  • Out of the box parallelization

  • Lazy initialization of collections

  • Less verbose code

  • Better scripting support with Nashorn Java script engine

  • Improved type inference

 

Interface Unlocking

To do many improvements still keeping backward compatibility, it also had to make few compromises. Interface unlocking in one of the most popular of those decisions.

Interfaces in Java could only have abstract methods until Java 7. Once an interface is made public, it was not possible to change it without breaking the existing code.

However to support features such as lambdas and functional programming, Java had to make changes to existing interfaces also. This eventually resulted in a complete makeover of interfaces with additions such as default methods, static methods etc.  

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)