Java 9 introduced several new features including a module system, jshell REPL environment, jlink tool for linking modules, G1 garbage collector as default, reactive streams API, improved process handling API, HTTP/2 client support, and other language and API improvements. The module system aims to address issues with the monolithic JDK by encapsulating and restricting internal APIs within named modules. Jshell brings an interactive shell to Java for testing code snippets. Jlink allows building runtime images with only required modules.