What's New In Java
The quick guide to Java's newest features
Topic: Software Development
In the fall of 2017, Oracle released Java 9 and adopted a six-month release schedule, addressing the language's reputation as old, mature, and unchanging. Now new features can be tried quickly, and if a feature isn't quite ready for the current release, the next release isn't that far away. While this helps the Java team, the situation is more difficult for Java users and adopters, because just as a company has stabilized on a particular version, the next one is right around the corner. In light of these developments, it's critical that Java developers be aware of what new features have been added to Java and, possibly more important, what is scheduled for removal.
What you'll learn-and how you can apply it
By the end of this live, online course, you’ll understand:
- How the newest features of Java have been incorporated into the language
- The intended use cases driving adoption
- Where to find documentation and demos for the new features
And you’ll be able to:
- Use the latest versions of Java
- Evaluate features like functional programming, modularization, and local variable type inference in order to decide on adoption
- Plan for future releases based on features in progress
This training course is for you because...
- You're a Java developer who needs to know what new features have been added in the last few releases.
- You need to maintain Java installations in a commercial environment and have to decide whether or not an upgrade is worth it.
- You're a developer in another JVM-based language who wants to know how the underlying Java Virtual Machine has changed.
- A working knowledge of Java 7 or above
- Java 8 and 9 Fundamentals: Modern Java Development with Lambdas, Streams, and Introducing Java 9’s JShell and the Java Platform Module System (JPMS) (video)
- Advanced Java Development (video)
About your instructor
Ken Kousen is the author of the Kotlin Cookbook (O'Reilly), Modern Java Recipes (O'Reilly), Gradle Recipes for Android (O’Reilly), and Making Java Groovy (Manning), as well as O’Reilly video courses in Android, Groovy, Gradle, advanced Java, and Spring. A JavaOne Rock Star, he’s a regular speaker on the No Fluff Just Stuff conference tour and has spoken at conferences all over the world. Through his company, Kousen I.T., Inc., he’s taught software development training courses to thousands of students.
The timeframes are only estimates and may vary according to how the class is progressing
Overview (15 minutes)
- Lecture: The new release schedule for Java; differences between the Oracle JDK and the open source version; where to find the latest JSRs and discussions
Lambda expressions and method references (30 minutes)
- Lecture: Functional programming concepts; syntax for lambdas; replacing anonymous inner classes; method reference syntax
Break (10 minutes)
Static and default methods in interfaces (30 minutes)
- Lecture: Implementing default methods; new static methods in the standard library; overriding default methods; private methods in interfaces
Java Streams (30 minutes)
- Lecture: The Stream interface; stream processing methods; map, filter, and reduce; using collectors
Break (10 minutes)
The Optional data type (15 minutes)
- Lecture: Wrapping values in Optional<T>; processing Optional using orElse, orElseGet, and orElseThrow; differences between map and flatMap
The Java Platform Module System (30 minutes)
- Lecture: Modularization; requiring and exporting modules; the Java library modules; modularization in the open source world
Break (10 minutes)
Local variable type inference (15 minutes)
- Lecture: The new var "reserved type name"; rules for var usage; recommended practices
JShell: The interactive Java shell (15 minute)
- Lecture: Using JShell; defining methods and properties; working with external editors; saving and restoring Java "scripts"
Miscellaneous changes (30 minutes)
- Lecture: Try-with-resources; collection factory methods; the @Deprecated annotation; using @SafeVarargs; HTTP 2 client; upcoming features