Modules (JPMS)
The Java Platform Module System (Java 9) groups packages into named modules.
Collection factory methods
`List.of`, `Set.of` and `Map.of` (Java 9) create small immutable collections in one line.
Private interface methods
Since Java 9 an interface can have `private` methods.
Stream takeWhile and dropWhile
`takeWhile` keeps items from the start of a stream until a condition first fails.
Optional additions
Java 9 added `ifPresentOrElse` (do one thing if there is a value, another if not), `or` (try another Optional) and `stream` (turn an Optional into a stream of zero or one items).
try-with-resources on existing variables
Before Java 9 a resource had to be declared inside the `try (...)` parentheses.