Advanced Java 8 Programming

COURSE OUTLINE:

Description

In this course, you will explore specific advanced programming APIs and techniques including working with Collections, Java Virtual Machine (JVM), Dependency Injection, Reflection, Authentication and much more.

Audience

Experienced Java developers who want to take their core Java skills and bring them to an advanced level.

Learning Objectives

  • Functional programming means and what it brings to the table
  • How Lambda expressions and functional interfaces can greatly enhance other aspects of Java
  • Use the new Stream constructs to work with Collections and Collectors
  • Work with default methods and pass methods as arguments
  • Use the new features to support concurrency in multi-code systems
  • Work with the JavaScript engine Nashorn
  • Java Virtual Machine(JVM)
  • How to structure and the advantages of jar files
  • Work with tools to package applications
  • Authenticate packaged Java applications
  • How reflection can be implemented
  • Work Java and JEE's version of dependency injection (CDI)
  • Work with WebSockets
  • Use Java Bean validation
  • Understand and implement Internationalization and Localization techniques

1. Introduction to Lambda Expressions

  • Functional Programming
  • Lambda Expressions and Functional Interfaces

2. Streams

  • Introduction to Streams
  • The Streams API
  • Collections and Collectors

3. Additional Java 8 Enhancements

  • Evolving Interfaces
  • Optional
  • Java 8 Concurrency updates
  • Nashorn JavaScript Engine

4. Best Practices and Performance

5. Java Virtual Machine

  • Architecture of the JVM
  • Application Execution
  • Reflection
  • Reference Objects

6. Effective Java

  • Creating and Destroying Objects
  • Factory Methods
  • Impact of Finalizers
  • Classes and Interfaces
  • Immutability
  • Composition vs. Inheritance
  • Exceptions
  • Threading Constructs to Avoid
  • Performance and Java 8

7. Dependency Injection (DI) in Java and JEE

  • Introduction to DI and CDI
  • Using CDI
  • CDI and Java EE

8. Java API for WebSocket

  • Introduction to WebSocket
  • Implementing WebSocket Endpoints
  • WebSocket in Java EE

9. Java Bean Validation (JSR 349)

  • Introduction to Bean Validation
  • Bean Validation

10. Additional Topics (Optional)

  • Java I/O
  • Packaging Applications
  • Internationalization