Introduction
  • Introduction to the Course
Installation and Setup
  • Installing JDK 9 on Windows
  • Installing IntelliJ on Windows
  • Installing JDK9 on Mac OSX
  • Installing IntelliJ on Mac OSX
  • Configuring IntelliJ on Mac OSX and Windows
The Java Shell (REPL)
  • Introduction to the Java Shell
  • Getting Started
  • Getting Help
  • Understanding Snippets
  • Editing and Navigating Code Snippets
  • Using Variables
  • Using Methods
  • Using an External Editor
  • Using Classes
  • Auto-Complete and Shortcuts
  • Loading and Saving Snippets
  • Using JAR Files
  • Using Modular JAR Files
The Java 9 Platform Module System
  • Introduction to the Java Module Platform System
  • Motivation and Goals of the Java Platform Module System
  • What is a Module?
  • The requires and exports Module Directives
  • The Modular JDK
  • Module Graphs
  • Our First Modular Application
  • Our First Modular Application in IntelliJ
  • Refactoring to Allow Multiple JokeServers
  • Using the JavaService Loader with the Java 9 Module System
  • Refactoring JokeServer to Provide Services
  • Allowing Reflective Access using the open(s) Directives
  • Adding a GUI to the JokeServer and Allowing Reflection
  • jlink: Creating a Custom JRE
  • Using jlink to Create Custom Runtimes for our Modular App and JokeServer
  • Migrating Existing Code to the Java 9 Module System
  • Example of Migrating Existing Code to the Java 9 Module System
  • Example of Migrating an Existing Application - Part 1
  • Example of Migrating an Existing Application - Part 2
  • Example of Migrating an Existing Application - Part 3
  • Example of Migrating an Existing Application - Part 4
  • Using Maven with Java 9, Modules, and IntelliJ
The Streams API
  • Overview of the additions to the Streams API
  • Examples of the additions to the Streams API
Private Method in Interfaces
  • Overview of Private Methods in Interfaces
  • Examples of Private Methods in Interfaces
Factory Methods for Collections
  • Overview of Factory Methods in Collections
  • Examples of Factory Methods in Collections
Try With Resources
  • Overview of Try-With-Resources
  • Example of Try-With-Resources
Diamond Operator
  • Overview of the Diamond Operator
  • Example of the Diamond Operator
SafeVarargs Annotation
  • Overview of the @SafeVarargs Annotation
  • Example of the @SafeVarags Annotation
Process API Updates
  • Overview of the update to the Process API
  • Example of the updates to the Process API Part 1
  • Example of the updates to the Process API Part 2
HTTP/2 Client
  • Overview of the new Java 9 HTTP/2 Client
  • Using the Java 9 HTTP/2 Client in the Java Shell
  • Using the Java 9 HTTP/2 Client to make Synchrnous request using IntelliJ
  • Using the Java 9 HTTP/2 Client to make Asynchronous Requests using IntelliJ
Other Changes in Java 9
  • Other Changes in Java 9
Extra Information - Source code, and other stuff
  • Source Code
  • Bonus Lecture and Information