1. 首页
  2. java9教程

001一、Java9特性介绍和环境配置

引言

Java 9 推出好长时间了,但是它有什么新的东西和废弃了什么东西,我一直没认真去了解过。Java 9 ( 又称为 jdk 1.9 ) 是 Java 编程语言开发的主要版本。它的初始版本于 2017921 日发布

按照今天的日期,也就是差不多一年前吧,但是,要知道,Java 10 都已经出来了…. 残废的 Java 9 ,大家还没用上,就开始过时了。

本专栏,我一边收集各种资料,一边写一些基础的介绍文章。

Java 9

Java 9 应该是当初最为期待的版本吧。当时因为 Java 8 带来了很多新特性,大家都以为 Java 9 会持续带来更多的新特性。结果呢 ? 虽然说不上多惊艳,但还是马马虎虎过得去了。

Java 9 是非常理论上应该是名利双收的,但实际上,夹在 Java 7 Java 8Java 10 之间,其实大部分人都还停留在 Java 8 ,如果要升级,早就到了 Java 10了…

所以,其实,我这个专栏,应该算是介绍性的文章,以简单直观的方式解释了Java 9的基本到高级功能及其用法。如果可以,就深入一点。

我是 Java 9 专栏的读者么 ?

只要你会 Java,你就可以阅读这个专栏。

本专栏对大多数 Java 开发人员非常有用,从初学者到专家

完成阅读本专栏后,你将发现自己在 Java 9 中具有中等水平的专业知识,当然了,继续的提高还要你的继续努力实践

Java 9 的目标

Java 9 版本的主要目标是

1、模块化 JDKJava 标准版 ( Java Standard Edition ) ,使得 Java 可以用在小型计算设备中

今天,我才牢牢记住了 Java SE 的全称,竟然是 Java Standard Edition

2、提高 JDKJava 实现的整体安全性
3、简化 JAVA SEJava EE 平台上的 Java 代码库和大型应用程序的构建和维护过程
4、设计和实现能够应用于 Java PlatformJava JDK 上的标准模块系统

其实看这几个主要目标,Java 9 的最大的变更应该就是开始模块化…,

这也导致了 Java 9 不突出的原因吧。毕竟 Java开发人员日常使用 Java 9 的过程中,对模块化并没有明显的感知

Java 9 新特性

Java 9 在以上 4 个目标的基础上做了大量的工作,可以对外称道的应该有 90+ 个,但是,大部分都是小修小改,不足道也。

我们就介绍几个比较大一点的特性吧

1、模块化 ( Module )

这是首当其中的特性。毕竟这么大的版本,目标只是它。

Java 中的模块 ( Module ) 是一种新的 Java 编程组件 ( Component ) ,是一个命名的 ( named ),自描述的代码和数据集合

2、REPL ( JShell )

REPL ,全称 Read Eval Print Loop ,中文 「 交互式解释器 」

这对于我们 Java 开发者来说,应该是 Java 9 带来的最大的个性吧。我们终于可以像 PythonRubyNode.js 那样在 Shell 可见即可得的运行一些范例代码了

3、HTTP/2 客户端

HTTP/2 大行其道的今天,Java 开发者终于可以用上原生的HTTP/2 Java 客户端了。

新的HTTPClient API 支持 WebSocketsHTTP/2 Stream 以及服务器推送功能

4、增强 JavaDocs

生成输出支持 HTML5 ,同时为生成的 API 文档提供搜索功能

5、增强 JAR – 多 Java 版本的 JAR 支持

增强 JAR 格式,使得可以在单个 JAR 存档中同时存在多个特定于 Java 发行版的类文件

6、集合工厂方法

ListSetMap 等结构添加了新的静态工厂方法,用于创建这些集合的不可变实例。

7、接口允许私有方法 ( private methods )

增强了接口 ( interface ) 功能,可以在接口中包含私有的成员方法和私有的静态方法

8、改进 Process API

改进 API 来控制和管理操作系统进程

9、改进流 ( Stream ) API

为了增强了安全性和健壮性 , 对象数据序列化时允许对输入的流进行过滤

10、 try-with-resources 语句改进

允许在 try-with-resources 语句中为资源定义一个最终变量 ( finall )

11、 增强 @Deprecated 注解

修改 @Deprecated 注释,可以提供有关 API 状态和预期处置的更多信息

12、 内部类允许使用 「 钻石操作符 」 ( <> )

在匿名类中,如果参数的类型是可推断的,那么就允许使用 「 钻石操作符 」 <>

13、 改进 Optional 类

java.util.Optional 类添加了新的有用方法

14、 多分辨率 ( Multiresolution ) 图像 API

支持将具有不同分辨率的一组图像封装成单个多分辨率图像

15、 CompletableFuture API 改进

使用 ProcessHandle.onExit 方法退出进程时,CompletableFuture 类的异步机制可以执行一些操作 ( Action )

16、 轻量级的 JSON

Java 9 中引入了一个轻量级的 JSON API 用于编码和解码文档和数据流 ( data stream ) 为 JSON 格式

17、 响应式流 ( Reactive Streams ) API 支持

为了支持 Java 9 的响应式编程,Java SE 9 版本中引入了一个新的响应式流 ( Reactive Streams ) API

环境配置

Java 9 的环境安装和配置其实很简单,因为跟 Java 7 / Java 8 的安装差不多,我们就不做过多的介绍了。

相关的安装教程,可以参考我们的 Java 基础教程:Java 开发环境配置

因为 Java 当前的最新大版本为 Java 10,所以,我们建议你安装 Java 10 ,它同时也包含了 Java 9 的新特性

编辑器

顺便说一下,我们接下来的教程不会使用大型的 IDE ,比如 IdeaNetbeansEclipse 等,而只会使用一些较小的文本编辑器,比如 Sublime Text 3Visual Studio Code

关于这些文本编辑器,网上的使用教程很多,其实,下载安装就好,没啥大的配置。

项目

既然不使用大型的、功能齐全的 IDE ,那么我们也不会建立大型的项目工程,一般情况下,我们直接单个文件解决所有问题,这样方便大家理解,也不会造成部分文件或代码缺失的问题。

写完了如果写得有什么问题,希望读者能够给小编留言,也可以点击[此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "此处扫下面二维码关注微信公众号")

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:001一、Java9特性介绍和环境配置

    链接:https://www.javajike.com/article/1416.html

« 002-二、Java 9 新特性 – 模块化
000-Java9系列»

相关推荐

QR code