3 arrows

Summer-Ready Savings: Up To $500 Off Training 


Advanced Java 8 Programming

  • Tuition USD $2,195 GSA  $1,990.43
  • Reviews star_rate star_rate star_rate star_rate star_half 4119 Ratings
  • Course Code TT3100-J8
  • Duration 4 days
  • Available Formats Classroom

The Advanced Java 8 Programming is a comprehensive hands-on advanced Java training workshop geared for experienced developers who wish to explore specific advanced programming APIs and techniques. This course is meant to be customized to target specific challenges or initiatives facing a development team or organization.

Skills Gained

  • Understand functional programming means and what it brings to the table
  • Understand 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-core systems
  • Understand and work with the JavaScript engine Nashorn
  • Explore the Java Virtual Machine (JVM)
  • Understand how to structure and the advantages of jar files
  • Work with tools to package applications
  • Effectively authenticate packaged Java applications
  • Understand 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

Who Can Benefit

Programmers with prior practical Java development experience.


This is an intermediate and beyond- level Java course, designed for experienced Java developers who wish to get up and running with advanced skills immediately.

Course Details

Session: Introduction to Lambda Expressions

Lesson: Functional Programming

  • Functional vs OO Programming
  • Anonymous Inner-classes
  • Utility Methods
  • Lambda Expressions

Lesson: Lambda Expressions and Functional Interfaces

  • Lambda Expression Syntax
  • Functional Interfaces
  • Type Inference in Java 8
  • Method references

Session: Streams

Lesson: Introduction to Streams

  • Processing Collections of data
  • The Stream interface

Lesson: The Streams API

  • Reduction and Parallelism
  • Filtering collection data
  • Sorting Collection data
  • Map collection data
  • Find elements in Stream
  • Numeric Streams
  • Create infinite Streams
  • Sources for using Streams

Lesson: Collections and Collectors

  • Creating Collections from a Stream
  • Group elements in the Stream
  • Multi-level grouping of elements
  • Partitioning Streams

Session: Additional Java 8 Enhancements

Lesson: Evolving Interfaces

  • Interfaces in Java 8
  • Default methods
  • Static methods
  • Multiple Inheritance

Lesson: Optional

  • Introduce Optional
  • Implement Optional attributes
  • Lambda expressions and Optional

Lesson: Java 8 Concurrency updates

  • Parallel data processing
  • Working with Streams in multi-core architectures
  • Using Lambda expressions with concurrency

Lesson: Nashorn JavaScript Engine

  • Working with JavaScript and Java
  • Accessing Nashorn
  • Executing JavaScript from Java
  • Executing Java from JavaScript
  • Implementing a Java Interface
  • Alternatives to Nashorn

Session: Best Practices and Performance

Session: Java Virtual Machine

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

Session: Effective Java

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

Lesson: Performance and Java 8

  • Performance Across Java Versions
  • Impact of Java 8 Concurrency Updates
  • Tiered Compilation
  • Nashorn versus Java 7's JavaScript Engine
  • Lambda Expressions versus Inner Classes
  • Impact of Streams versus Collections
  • Date/Time Classes
  • I/O Stream Recommendations
  • Encoding/Decoding
  • Strings and Spring Interning

Session: Dependency Injection (DI) in Java and JEE

Lesson: Introduction to DI and CDI

  • Context Dependency Injection (CDI)
  • The @Inject Annotation
  • The @Default Annotation
  • The @Alternative Annotation
  • The @Named Annotation

Lesson: Using CDI

  • Qualifiers
  • @PostConstruct and @PreDestroy
  • The @Produces Annotation

Lesson: CDI and Java EE

  • CDI's Relationship to Java EE
  • The @Model annotation
  • Built-in CDI scopes

Session: Java API for WebSocket

Lesson: Introduction to WebSocket

  • Java API for WebSocket Overview
  • Using WebSocket in Java EE
  • Endpoint Instances

Lesson: Implementing WebSocket Endpoints

  • Annotated Endpoints
  • Receiving messages
  • Send Response to Client(s)
  • JavaScript to Setup a WebSocket Connection

Lesson: WebSocket in Java EE

  • Manage Client State
  • Encoding and Decoding Messages
  • Handling Errors

Session: Java Bean Validation (JSR 349)

Lesson: Introduction to Bean Validation

  • Bean Validation
  • Define Constraints on Object Models
  • Core Validation Annotations
  • Validate Objects and Object Graphs

Lesson: Bean Validation

  • Validate Parameters and Return Values
  • Develop Custom Constraints

Session: Additional Topics (Optional)

Lesson: Java I/O

  • The Java I/O Mechanism
  • Subclasses Accessing Real Data
  • Filter Classes
  • New File IO - NIO
  • NIO Overview

Lesson: Packaging Applications

  • JAR Files
  • Versioning
  • Sealing Packages
  • Signing and Verification of JARs
  • Enhancements for JAR processing

Lesson: Internationalization

  • Fundamentals of Localization
  • Localizing Strings
  • Localizing Numbers
  • Localizing Dates

When does class start/end?

Classes begin promptly at 9:00 am, and typically end at 5:00 pm.

Does the course schedule include a Lunchbreak?

Lunch is normally an hour long and begins at noon. Coffee, tea, hot chocolate and juice are available all day in the kitchen. Fruit, muffins and bagels are served each morning. There are numerous restaurants near each of our centers, and some popular ones are indicated on the Area Map in the Student Welcome Handbooks - these can be picked up in the lobby or requested from one of our ExitCertified staff.

How can someone reach me during class?

If someone should need to contact you while you are in class, please have them call the center telephone number and leave a message with the receptionist.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

Does ExitCertified deliver group training?

Yes, we provide training for groups, individuals, and private on sites. View our group training page for more information.

Overall ExitCertified is a great training provider and the remote learning is as effective as in person.

This was effective way to provide a ton of information in a short time period.

Great company -- easy to sign up and very organized. Loved my teacher and class overall.

Very clean, great cafeteria and well sorted, very kind staff. The bathrooms have to be expanded as they might get crowded sometimes

Both course material and instructor demonstrated a sound foundation on Maximo material

0 options available

There are currently no scheduled dates for this course. If you are interested in this course, request a course date with the links above. We can also contact you when the course is scheduled in your area.

Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward