Java 9 will introduce a new module system that will provide code encapsulation and a way to explicitly declare dependencies between modules. Some key changes include the ability to define modules using a module-info.java file, and new parameters for javac and java to support modules. There are still some unresolved issues around module declarations, artifacts, descriptors, graphs, reflection, and versioning that need to be addressed prior to final release. The new module system is aimed at addressing problems like large runtime footprints, classpath issues, and lack of visibility controls between packages.