

java9正式版于今日正式发布,新版本的java语言带来了超过150项的新功能,更加强大的语法功能,需要的用户不妨下载体验。
经过4次跳票,历经曲折的 Java 9 正式版终于发布了! 你可以通过这里下载 Java 9 正式版。JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、扩展提升、性能管理改善等。
102: Process API 更新
110: HTTP 2 Client
143: 提升访问对象时的线程竞争处理
158: 统一 JVM 日志
165: Compiler Control
193: Variable Handles
197: 分割代码缓存区
199: Smart Java Compilation, 第二阶段
200: 模块化JDK
201: 模块化源码
211: Elide Deprecation Warnings on Import Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: 模块化运行时镜像
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11.0 Updates into JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of GStreamer
258: HarfBuzz Font-Layout Engine
259: Stack-Walking API
260: Encapsulate Most Internal APIs
261: 模块化系统
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
264: Platform Logging API and Service
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
269: Convenience Factory Methods for Collections
270: Reserved Stack Areas for Critical Sections
271: Unified GC Logging
272: Platform-Specific Desktop Features
273: DRBG-Based SecureRandom Implementations
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
292: Implement Selected ECMAScript 6 Features in Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port
298: Remove Demos and Samples
299: Reorganize Documentation
1. Java 平台级模块系统
Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。每一个公共类都可以被类路径之下任何其它的公共类所访问到, 这样就会导致无意中使用了并不想被公开访问的 API。此外,类路径本身也存在问题: 你怎么知晓所有需要的 JAR 都已经有了, 或者是不是会有重复的项呢? 模块系统把这俩个问题都给解决了。
模块化的 JAR 文件都包含一个额外的模块描述器。在这个模块描述器中, 对其它模块的依赖是通过 “requires” 来表示的。另外, “exports” 语句控制着哪些包是可以被其它模块访问到的。所有不被导出的包默认都封装在模块的里面。如下是一个模块描述器的示例,存在于 “module-info.java” 文件中:
module blog { exports com.pluralsight.blog; requires cms; }
我们可以如下展示模块:

请注意,两个模块都包含封装的包,因为它们没有被导出(使用橙色盾牌可视化)。 没有人会偶然地使用来自这些包中的类。Java 平台本身也使用自己的模块系统进行了模块化。通过封装 JDK 的内部类,平台更安全,持续改进也更容易。
当启动一个模块化应用时, JVM 会验证是否所有的模块都能使用,这基于 `requires` 语句——比脆弱的类路径迈进了一大步。模块允许你更好地强制结构化封装你的应用并明确依赖。你可以在这个课程中学习更多关于 Java 9 中模块工作的信息 。
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<Integer> ints = Set.of(1, 2, 3); "/>
5. 集合工厂方法
通常,您希望在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它。 实例化集合,几个 “add” 调用,使得代码重复。 Java 9,添加了几种集合工厂方法:
Set<Integer> ints = Set.of(1, 2, 3);方法会成为公共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% 完成。不过你可以在 Java 9 中开始使用这套 API:
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder(URI.create("http://www.google.com")).header("User-Agent","Java").GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandler.asString());
除了这个简单的请求/响应模型之外,HttpClient 还提供了新的 API 来处理 HTTP/2 的特性,比如流和服务端推送。
妻中蜜3全cg存档
游戏工具 / 28KB
下载
1
SimplyCam DXF格式编辑器v2.4.0 绿色版
文件处理 / 2.0M
下载
2
csgo空格键连跳脚本绿色免费版
游戏工具 / 564KB
下载
3
LOL Dsx换肤小助手2016 最新过检测版
游戏工具 / 4KB
下载
4
免费的SQLite3数据管理工具(SQLiteSpy)v1.9.9绿色版
编程软件 / 1.9M
下载
5
魔兽7.2.5塞弗斯的秘密buff监控wa字符串
游戏工具 / 1KB
下载
6
DNF9周年第十套天空时装补丁
游戏工具 / 1.6M
下载
7
易控王文档加密软件v2017官方版绿色免费版
文件处理 / 46M
下载
8
我的世界矿物透视MOD1.6.4-1.8集合版本
游戏工具 / 889KB
下载
9
Office自带Word转PDF插件
办公学习 / 606KB
下载
10
140.5M / 09-05
立即下载
76.4M / 03-25
立即下载
55M / 06-05
立即下载
237.9M / 04-13
立即下载
900.9M / 03-02
立即下载
96.2M / 07-06
立即下载
311.2M / 07-06
立即下载
335M / 07-06
立即下载
200M / 07-06
立即下载
413.8M / 07-06
立即下载
768.9M / 08-19
立即下载
484.7M / 09-27
立即下载
165.4M / 09-05
立即下载
131.8M / 04-13
立即下载
195.6M / 03-03
立即下载
45.6M / 09-08
立即下载
665.2M / 07-06
立即下载
2.84G / 07-06
立即下载
93M / 07-06
立即下载
338.3M / 07-06
立即下载
892.4M / 08-18
立即下载 312M / 07-30
立即下载 1.38G / 07-26
立即下载 109.8M / 06-03
立即下载 142M / 01-08
立即下载 1.2M / 11-23
立即下载 548.8M / 04-13
立即下载 1.6M / 04-13
立即下载 1.48G / 03-18
立即下载 646.6M / 03-03
立即下载 404M / 08-18
立即下载 110.5M / 09-05
立即下载 33.4M / 09-05
立即下载 60M / 04-29
立即下载 254M / 04-25
立即下载 659M / 04-23
立即下载 1M / 12-26
立即下载 253.4M / 12-08
立即下载 253M / 12-08
立即下载 1.19G / 11-16
立即下载 115.9M / 08-19
立即下载 488.3M / 06-04
立即下载 369M / 09-22
立即下载 181.5M / 09-22
立即下载 201.2M / 09-05
立即下载 248.9M / 12-08
立即下载 248.9M / 12-08
立即下载 100.6M / 03-06
立即下载 148.9M / 03-06
立即下载 1.12G / 07-06
立即下载 126.7M / 02-04
立即下载 1.76G / 09-22
立即下载 1.92G / 04-17
立即下载 201.5M / 04-13
立即下载 7.31G / 07-01
立即下载 94.3M / 07-06
立即下载 2.48G / 07-06
立即下载 7.63G / 07-06
立即下载 1M / 07-06
立即下载 778.1M / 07-06
立即下载 1.30G / 08-19
立即下载 72M / 07-06
立即下载 548.7M / 07-06
立即下载 1.00G / 07-06
立即下载 9.13G / 07-06
立即下载 126.2M / 07-06
立即下载 72M / 07-06
立即下载 105.1M / 07-06
立即下载 132M / 07-06
立即下载 132M / 07-06
立即下载