Functional Programming, Streams with Java 8 & Java 9 New Features

מק"ט: #6946 | משך קורס: 16 שעות אק'
| מספר מפגשים: 2

Java 8 provides many new and exciting features like LAMBDA expression and functional programming capabilities, default & static interface methods, method references, Stream API along with Fork-Join built in support and more. The JDK8 release is enriched with new exciting tools for on-flight recording and dependency checks. Java 8 memory model has been enhanced as well to take advantage of native memory for faster execution and smaller footprint.
This course deep dives into LAMBDA expressions and the implications of using dynamic invocations and how it effects OOP based server-side projects. The course focuses on Stream APIs and details about parallelism support.

Recently, Java 9 was released with some environmental and API dramatic enhancements. These enhancements includes Modular Java (Jigsaw project), Reactive programming API and cool new utilities like Jlink. The course relates to these new capabilities. 

*שדות חובה
PDF version

קהל יעד

  • Java developers that want to do functional programming in Java
  • Java developers that want to update to latest JavaSE version
  • Developers that want to handle in-memory grids with Java Stream API
  • Java developer that want to understand the new JVM enhancements  

תנאי קדם

  • Experience in JavaSE


Introduction to JVM internals

  • Memory model
  • Perm Gen
  • CMS GC
  • The process of class loading
  • The implications of objet instantiating


Java 7 latest

  • ARM
  • Multi-catch
  • Intro to Executors & Fork-Join
  • Asynchronous IO


Java 8 core new features

  • Lambdas and Functional Interfaces
  • Functional programming with the new Functional Interfaces
  • Method References
  • Interface Default and Static Methods
  • Repeating annotations
  • Extended Annotations Support
  • Reflection Parameter names


Java 8 APIs

  • Streams
    • Introduction
    • Lazy execution & external iteration
    • Terminal operations
    • Lazily executed operations
    • Int,Long & Double streams
    • Collectors
    • Parallel Streams
    • commonpool
    • Assigning alternative pool
  • Optional
  • Optimistic Reading – Lock API
  • Completable Stage & Future
  • Date/Time API (JSR 310)
  • Nashorn JavaScript engine
  • Base64
  • Parallel Arrays


Java 8 Tools

  • Nashorn engine: jjs
  • Class dependency analyzer: jdeps
  • Java Mission Control (jmc)


Java 8 VM & Runtime enhancements

  • Tiny JVM for IoT
  • Metaspace – no more Perm Gen
  • Tiered compilation made default


Java 9 – New features

  • APIs
    • Reactive programming with flow
    • Collection Factories
    • Stream API new features
    • Private interface methods
    • HTTP/2 API
  • Stack walking
    • Environmental
    • Modular Java & Jlink
    • Jshell
    • Multi version jars
    • G1 made default