Java9新特性
模块系统
Java9最大的变化之一是引入了模块系统(Jigasw项目)。
在引入了模块系统之后,JDK 被重新组织成 94 个模块Java。 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定义运行时镜像。
一个大型的项目,会包含多个模块。各个模块之间会相互调用,不过这种情况下会很少,如果一个项目有30个模块系统进行开发,但是只要某个单独模块运行时,都会带动所有的模块,这样对于jvm来说在内存和性能上会很低,所以,java9提供了这一个特性,某一个模块运行的时候,jvm只会启动和它有依赖的模块,并不会加载所有的模块到内存中,这样性能大大的提高了。
一个项目中的两个模块,模块之间通过module-info.java来关联,在IDEA编辑器右键创建package-info.java
在这个两个模块java9Demo和java9Test中,java9demo编写一个实体类Person,在java9Test调用这样一个过程
这个是java9Demo 将 java9Test 模块需要的文件导出 exports 把它所在的包导出
module java9Demo{
exports com.mdxl.layer_cj.entity;
}
然后在java9Test模块中创建一个package-info.java,引入java9Demo模块导出包名
module java9Test{
requires java9Demo;
}
这样就可以直接在java9Test中引入Person实体类了,这只是一个简单的例子。exports 控制着那些包可以被模块访问,所以不被导出的包不能被其他模块访问