标签: jdk9
jdk9全称Java SE Development Kit 9,里面包含了Java运行环境、Java开发工具和Java基础类库源代码,是JAVA开发所必备的一款工具。九点软件园为您提供jdk9下载2022最新版,推荐学习和从事JAVA开发的朋友下载使用哦!
模块系统:模块是一个包的容器,Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。
REPL (JShell):交互式编程环境。
HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPClient API 支持 WebSocket 和 HTTP2 流以及服务器推送特性。
改进的 Javadoc:Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。
多版本兼容 JAR 包:多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本。
集合工厂方法:List,Set 和 Map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。
私有接口方法:在接口中使用private私有方法。我们可以使用 private 访问修饰符在接口中编写私有方法。
进程 API: 改进的 API 来控制和管理操作系统进程。引进 java.lang.ProcessHandle 及其嵌套接口 Info 来让开发者逃离时常因为要获取一个本地进程的 PID 而不得不使用本地代码的窘境。
改进的 Stream API:改进的 Stream API 添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。
改进 try-with-resources:如果你已经有一个资源是 final 或等效于 final 变量,您可以在 try-with-resources 语句中使用该变量,而无需在 try-with-resources 语句中声明一个新变量。
改进的弃用注解 @Deprecated:注解 @Deprecated 可以标记 Java API 状态,可以表示被标记的 API 将会被移除,或者已经破坏。
改进钻石操作符(Diamond Operator) :匿名类可以使用钻石操作符(Diamond Operator)。
改进 Optional 类:java.util.Optional 添加了很多新的有用方法,Optional 可以直接转为 stream。
多分辨率图像 API:定义多分辨率图像API,开发者可以很容易的操作和展示不同分辨率的图像了。
改进的 CompletableFuture API : CompletableFuture 类的异步机制可以在 ProcessHandle.onExit 方法退出时执行操作。
轻量级的 JSON API:内置了一个轻量级的JSON API
响应式流(Reactive Streams) API: Java 9中引入了新的响应式流 API 来支持 Java 9 中的响应式编程。
1. Java 平台级模块系统
Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。每一个公共类都可以被类路径之下任何其它的公共类所访问到, 这样就会导致无意中使用了并不想被公开访问的 API。此外,类路径本身也存在问题: 你怎么知晓所有需要的 JAR 都已经有了, 或者是不是会有重复的项呢? 模块系统把这俩个问题都给解决了。
模块化的 JAR 文件都包含一个额外的模块描述器。在这个模块描述器中, 对其它模块的依赖是通过 “requires” 来表示的。另外, “exports” 语句控制着哪些包是可以被其它模块访问到的。所有不被导出的包默认都封装在模块的里面。如下是一个模块描述器的示例,存在于 “module-info.java” 文件中:
module blog {
exports com.pluralsight.blog;
requires cms;
}
2. Linking
当你使用具有显式依赖关系的模块和模块化的 JDK 时,新的可能性出现了。你的应用程序模块现在将声明其对其他应用程序模块的依赖以及对其所使用的 JDK 模块的依赖。为什么不使用这些信息创建一个最小的运行时环境,其中只包含运行应用程序所需的那些模块呢? 这可以通过 Java 9 中的新的 jlink 工具实现。你可以创建针对应用程序进行优化的最小运行时映像而不需要使用完全加载 JDK 安装版本。
3. JShell : 交互式 Java REPL
许多语言已经具有交互式编程环境,Java 现在加入了这个俱乐部。您可以从控制台启动 jshell ,并直接启动输入和执行 Java 代码。 jshell 的即时反馈使它成为探索 API 和尝试语言特性的好工具。
测试一个 Java 正则表达式是一个很好的说明 jshell 如何使您的生活更轻松的例子。 交互式 shell 还可以提供良好的教学环境以及提高生产力,您可以在此了解更多信息。在教人们如何编写 Java 的过程中,不再需要解释 “public static void main(String [] args)” 这句废话。
4. 改进的 Javadoc
有时一些小事情可以带来很大的不同。你是否就像我一样在一直使用 Google 来查找正确的 Javadoc 页面呢? 这不再需要了。Javadoc 现在支持在 API 文档中的进行搜索。另外,Javadoc 的输出现在符合兼容 HTML5 标准。此外,你会注意到,每个 Javadoc 页面都包含有关 JDK 模块类或接口来源的信息。
5. 集合工厂方法
通常,您希望在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它。 实例化集合,几个 “add” 调用,使得代码重复。 Java 9,添加了几种集合工厂方法:
Set ints = Set.of(1, 2, 3);
List strings = List.of("first", "second");
除了更短和更好阅读之外,这些方法也可以避免您选择特定的集合实现。 事实上,从工厂方法返回已放入数个元素的集合实现是高度优化的。这是可能的,因为它们是不可变的:在创建后,继续添加元素到这些集合会导致 “UnsupportedOperationException” 。
6. 改进的 Stream API
长期以来,Stream API 都是 Java 标准库最好的改进之一。通过这套 API 可以在集合上建立用于转换的申明管道。在 Java 9 中它会变得更好。Stream 接口中添加了 4 个新的方法:dropWhile, takeWhile, ofNullable。还有个 iterate 方法的新重载方法,可以让你提供一个 Predicate (判断条件)来指定什么时候结束迭代:
IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println);
第二个参数是一个 Lambda,它会在当前 IntStream 中的元素到达 100 的时候返回 true。因此这个简单的示例是向控制台打印 1 到 99。
除了对 Stream 本身的扩展,Optional 和 Stream 之间的结合也得到了改进。现在可以通过 Optional 的新方法 `stram` 将一个 Optional 对象转换为一个(可能是空的) Stream 对象:
Stream s = Optional.of(1).stream();
在组合复杂的 Stream 管道时,将 Optional 转换为 Stream 非常有用。
7. 私有接口方法
Java 8 为我们带来了接口的默认方法。 接口现在也可以包含行为,而不仅仅是方法签名。 但是,如果在接口上有几个默认方法,代码几乎相同,会发生什么情况? 通常,您将重构这些方法,调用一个可复用的私有方法。 但默认方法不能是私有的。 将复用代码创建为一个默认方法不是一个解决方案,因为该辅助方法会成为公共API的一部分。 使用 Java 9,您可以向接口添加私有辅助方法来解决此问题:
public interface MyInterface {
void normalInterfaceMethod();
default void interfaceMethodWithDefault() { init(); }
default void anotherDefaultMethod() { init(); }
// This method is not part of the public API exposed by MyInterface
private void init() { System.out.println("Initializing"); }
}
如果您使用默认方法开发 API ,那么私有接口方法可能有助于构建其实现。
8. HTTP/2
Java 9 中有新的方式来处理 HTTP 调用。这个迟到的特性用于代替老旧的 `HttpURLConnection` API,并提供对 WebSocket 和 HTTP/2 的支持。注意:新的 HttpClient API 在 Java 9 中以所谓的孵化器模块交付。也就是说,这套 API 不能保证 100% 完成。
9. 多版本兼容 JAR
我们最后要来着重介绍的这个特性对于库的维护者而言是个特别好的消息。当一个新版本的 Java 出现的时候,你的库用户要花费数年时间才会切换到这个新的版本。这就意味着库得去向后兼容你想要支持的最老的 Java 版本 (许多情况下就是 Java 6 或者 7)。这实际上意味着未来的很长一段时间,你都不能在库中运用 Java 9 所提供的新特性。
1:该下载地址为jdk9官方下载地址
2:下载包的正确包名:jdk-9.0.1_windows-x64_bin.exe
e4a破解版下载-易安卓E4A(含破解补丁) V6.9破解版下载446M2679人在玩易安卓E4A是九点小编为大家推荐的一款非常好用并基于谷歌Simple语言、专为安卓系统开发应用打造的编程辅助工具软件,让安卓开发无限简单,可以说是安卓版本的易语言程序。
下载火山编程破解版下载-火山软件开发平台 V2.0绿色破解版下载1.2GB1769人在玩火山软件开发平台是九点小编为编程开发用户分享的全新专业且深受诸多用户们喜爱的软件开发编程工具应用,是一种目的硬件设备无关、目的软件环境无关、易学易用实用、完全本地化的软件快速开发平台,有着极高流畅度的专业型迅速软件软件开发平台
下载易语言5.9破解版下载-易语言 V5.9完美破解版下载313.71MB1049人在玩易语言是九点小编为大家推荐的一款转为国人而设计的编程软件,由大连大有吴涛易语言软件开发有限公司推出,通过对易语言的学习,即便用户的英语水平不够好也能够轻松进行编程操作,让那些想编程且又不会英文的朋友们,提供了一条快速进入Windows程序编程的大门,支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具。
下载appinventor下载-App Inventor安卓编程软件V2023最新版下载310M1007人在玩App Inventor是九点小编为程序员们推荐的一种基于Web的开发环境,用于创建Android应用程序。它是由麻省理工学院(MIT)开发的,旨在使移动应用程序开发变得更加易于学习和使用。
下载米思齐编程软件下载-Mixly(米思齐图形化编程工具) v2.0 RC4官方版下载263.2M737人在玩Mixly For Arduino(米思齐图形化编程工具)windows版,基于Google的Blockly图形化编程框架开发,目的是为了配合Arduino UNO开发板套件使用,实现Arduino程序的图像化编程,Mixly自带Java8运行环境,用户直接双击mixly.vbs即可使用。
下载oracle 客户端下载-Oracle 11G客户端(32/64位) v11.2.0.4.0免费版下载1.95G555人在玩oracle11g客户端 是从 Oralce 11gR2 的官方客户端安装包中而来的 Oracle 数据库客户端,专为企业设计,轻松运行大量数据库除了可以连接远程数据库以外,还包含 SQL Plus、JDBC Driver、ODBC Driver、Pro*C SDK、Net Configuration Assistant、Net Manager 等。
下载navicat15破解版下载-Navicat 15 绿色版下载115MB500人在玩Navicat 15是九点小编为大家推荐的一款功能强大的数据库管理软件,软件采用可视化操作方式,无需任何代码即可轻松完成数据库的增删改查、备份等操作,可以帮助用户更好的管理数据库。
下载jdk1.832位下载-Java jdk1.8(32/64)官方版下载340M483人在玩Java JDK是九点小编为大家推荐的一款适用于开发人员必备的一款环境开发软件,这款软件用于构建应用程序、applet程序以及java编程语言的组成部分。九点软件园为大家带来的是JDK1.8版本,下面为大家分享一下安装方法以及下载地址吧!
下载access2007官方下载-Access2007绿色独立版下载44MB406人在玩Access2007绿色独立版是九点小编为大家分享的一款从office软件包中提取出来的独立版的数据库软件,使用办公软件套件,可以方便用户在电脑中读取使用数据库,欢迎有需要的用户前来九点软件园分享的地址来获取这款Access2007绿色独立版,希望大家会喜欢!
下载jdk-8u201-windows-x64.exe下载-jdk-8u121-windows-x64(java se开发工具包) 下载194MB330人在玩jdk-8u121-windows-x64 ,最新的JDK 8u121 发布了,Java SE 8u121包括重要的安全修复。Oracle强烈建议所有Java SE 8用户升级到此版本,JDK 8u121包含 2016i 版本的IANA时区数据,还包含一些安全问题的修复,有需要的赶快下载吧!
下载