Java 8 features

  • Lambda Expressions (using ->)
  • Functional Interfaces (SAM, @FunctionalInterface)
  • Method references
  • Default and Static methods in Interface
  • Improved APIs:
    • Collection API improvements
      • removeIf(), replaceAll() etc.
    • Concurrency API improvements
      • CompletableFuture
  • New Stream API
  • New Date Time API
  • New Optional Class
  • forEach in Iterable Interface
  • Nashorn JS Engine
    • introduced jjs CLI to execute JS code
    • Nashorn JS engine has been removed in Java 15+
  • Memory:
    • PermGen memory space removed and replaced with Metaspace

History

  • Java is an island of Indonesia where multiple cities are located
    • Most populous island of the World
  • Jakarta is capital city of Indonesia located in Java islands
    • Most populous city of Indonesia
  • Java programming Language is named after Java Coffee which was the most favorite coffee of creators at Sun Microsystems
  • Java EE or previously J2EE is a specification developed by Sun Microsystem
    • In 2017 Oracle acquired Sun Microsystem
    • In 2018, transferred to Eclipse Foundation and rebranded as Jakarta EE
    • Specifications include:
      • Jakarta Server Pages (JSP)
      • Jakarta Standard Tag Library (JSTL)
      • Jakarta Enterprise Beans (EJB)
      • Jakarta RESTful Web Services (JAX-RS)
      • Jakarta Bean Validation
      • Jakarta Contexts and Dependency Injection (CDI)
      • Jakarta Persistence API (JPA)
  • Eclipse Foundation is open-source organization and currently manage:
    • Eclipse IDE
    • Jakarta EE (formerly Java EE/J2EE)
  • Spring learned from Jakarta EE/Java EE and its similar competitors are similar in nature and they learned from each other
    • developed by Rod Johnson in company SpringSource (acquired by VMWare)
    • Spring implements some part of Jakarta EE specification
      • earlier package names: javax.*
      • new package names: jakarta.*