Java9模块化:新特性与变革

需积分: 9 2 下载量 44 浏览量 更新于2024-09-08 收藏 471KB DOCX 举报
"Java9新特性" Java9作为Java语言的一个重要版本,引入了一系列创新特性,旨在提升平台的模块化、安全性、性能以及可维护性。以下是Java9的一些核心新特性: 1. **Java平台级模块系统 (Java Platform Module System, JPMS)** - 模块化是Java9的一大亮点,它通过模块(JavaModule)对代码进行组织,每个模块都有明确的边界,可以控制对外部的依赖和暴露的包。模块描述器(module-info.java)定义了模块的依赖关系和暴露的包,增强了代码的封装性。 - 目标是减少JRE的体积,使得小型设备也能运行Java,同时提升安全性和性能,简化大型应用的开发和维护。 2. **模块的访问权限** - 模块之间存在可读性(readability)的概念,意味着一个模块能否发现并加载另一个模块。只有具备可读性,才能进一步判断类型间的可访问性(Accessible),即能否实际使用另一个模块的类型。 3. **模块的间接引用 (Transitive)** - 一个模块可以通过transitive依赖间接访问其他模块的类,这种特性有助于管理和控制模块间的依赖关系。 4. **类加载器的改变** - 类加载器(ClassLoader)在Java9中仍然遵循原有的加载逻辑,但其查找类的能力受到模块系统的限制,只允许加载readable和accessible的类,提高了安全性。 5. **JLink** - JLink是一个用于构建定制化运行时镜像的工具,它可以将特定的模块及其依赖打包在一起,生成轻量级的JRE,适合于特定的应用场景。 6. **Java版本更新字符串格式** - 版本号采用$MAJOR.$MINOR.$SECURITY.$PATCH的格式,更清晰地标识了版本信息。 7. **JShell (Read-Eval-Print Loop, REPL)** - JShell是Java9引入的命令行工具,用于快速测试和实验Java代码片段,提升了开发者的工作效率。 8. **改进的HTTP客户端** - Java9引入了一个新的内置HTTP客户端API,提供了更现代、高效的HTTP通信能力。 9. **多版本兼容JAR (Multi-Release JARs)** - 这一特性允许JAR文件包含针对不同Java版本的代码,使得库开发者可以利用新版本的特性,同时保持对旧版本的兼容。 10. **改进的Javadoc** - Java9的Javadoc工具支持Markdown语法,使得文档注释更加灵活和易读。 这些新特性使得Java9成为了一个更加现代化、高效且易于维护的平台,为开发者提供了更好的工具和更强的功能,推动了Java生态系统的发展。