Java 9 中最大的亮点是 Java 平台模块化的引入,以及模块化 JDK。但是 Java 9 还有很多其他新功能,这篇文字会将重点介绍开发人员特别感兴趣的几种功能。

这篇文章也是 Java 新特性系列文章中的一篇,往期文章可以查看下面链接。

还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下

还看不懂同事的代码?Lambda 表达式、函数接口了解一下

Jdk14 都要出了,还不能使用 Optional优雅的处理空指针?

Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

还看不懂同事代码?快来补一波 Java 7 语法特性

1. 模块化

Java 9 中的模块化是对 Java 的一次重大改进。但是模块化并不是最近才提出来的,我们经常使用的 maven 构建工具,就是典型的模块化构建工具。模块化不仅让模块命名清晰,写出高内聚低耦合的代码,更可以方便处理模块之间的调用关系。

在 Oracle 官方中为 Java 9 中的模块系统的定义如下:

the module, which is a named, self-describing collection of code and data. This module system.

直白翻译:模块是一个命名的,自我描述的代码和数据的集合。

Java 9 不仅支持了模块化开发,更是直接把 JDK 自身进行了模块化处理。JDK 自身的模块化可以带来很多好处,比如:

  • 方便管理,越来越大的 JDK 在模块化下结构变得更加清晰。
  • 模块化 JDK 和 JRE 运行时镜像可以提高性能、安全性、维护性。
  • 可以定制 JRE,使用更小的运行时镜像,比如网络应用不需要 swing 库,可以在打包时选择不用,减少性能消耗。
  • 清晰明了的模块调用关系,避免调用不当出来的各种问题。

上面提到了 JDK 自身的模块化,我们通过浏览 JDK 9 的目录结构也可以发现一些变化。

最明显的是在 JDK 9 中 jre 文件夹不存在了。下面是在 IDEA 中查看的 JDK 9 的依赖,命名规范的模块看起来是不是让人赏心悦目呢?

当然,这篇文章主要介绍 Java 9 的新特性,而模块化是一个巨大改变,结合示例介绍下来篇幅会比较长,这里就不占用太多篇幅了。

模块化文章预告:如何编写一个模块化系统,如何打包让没有安装 Java 环境的系统运行编写的代码,都可以通过模块化选择运行时模块实现。我后面的文章就会通过一个模块化项目介绍到,有兴趣的可以关注我后续文章

最新文章

  1. Git分布式版本控制系统学习笔记
  2. c#学习<二>:数据类型
  3. MVC下HtmlHelper自带BeginForm表单提交与异步Ajax请求
  4. TopCoder SRM 582 ColorfulBuilding
  5. 数据文件 和日志文件 收缩 Sql Server
  6. 九度OJ 1435 迷瘴
  7. Android 安全测试
  8. winsock开发重复定义问题
  9. Spring、Struts2+Spring+Hibernate整合步骤
  10. MFC全局函数开局——AfxGetApp解剖
  11. 企业架构与建模之ArchiMate的由来和详述(上)
  12. UVA 11324 The Largest Clique(强连通分量+缩点DAG的DP)
  13. 100个iOS开发面试题汇总
  14. [20190419]shared latch spin count 2.txt
  15. JGUI源码:右键菜单实现(12)
  16. 【2】学习C++之引用
  17. PeopleSoft OLE Automation error in Workbooks.Open: ObjectDoMethod: Microsoft Excel 不能访问文件
  18. Java 将键盘中的输入保存到数组
  19. 【原创】大数据基础之Oozie(1)简介、源代码解析
  20. window下mongodb的安装和环境搭建

热门文章

  1. Spring 加定时器
  2. JSON小记
  3. three.js入门第一个案例
  4. 使用内存映射文件MMF实现大数据量导出时的内存优化
  5. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上
  6. ODBC连接时报错不可识别的数据库格式
  7. Go的内存对齐和指针运算详解和实践
  8. Governing sand 贪心
  9. 百度DMA+小度App的蓝牙语音解决方案案例展示
  10. Python3中的__new__方法以及继承不可变类型类的问题