This crash course is for Java developers who want to quickly learn 12 additions to the Java language between Java 9 and Java 17, the current Long Term Support release. Since Java 9, the Java language and platform contain numerous changes but the twelve features introduced in this course will get utilized often in your day-to-day life as a Java programmer. The course is driven completely using examples, every feature explained via code in around 5 minutes. In some of the examples, we will utilize JUnit, OpenJFX, Jackson, and OpenCSV - You don’t need to know any of these libraries. The focus will be on the 12 features. Basic knowledge of Maven and JUnit is required. You will also get to reinforce your learning by solving a bunch ofinteresting exercises. We will go through the following: Learn how to create unmodifiable collections using Collection Factory methodsLearn how to utilize handy methods introduced in the Collectors class for flat mapping and filtering elements in a stream pipelineLearn how to write concise code using Local-Variable Type InferenceLearn handy API changes in String, Files class, and the Predicate, Path interfaceLearn to utilize the Teeing Collector to perform 2 operations on every element in the Stream and then merge resultsLearn Switch Expressions to write code that is easy to understandDetect the exact cause of a NullPointerException by using Helpful NullPointerExceptionsLearn how to represent multi-line Strings using Text BlocksLearn Pattern Matching for instanceofCreate Immutable data carriers using RecordsClose your hierarchy using Sealed ClassesBy the end of the course, you will get a good understanding of Modern Java features. These features will help you be a more productive programmer.