JAVA 9 新特性
一、Java 9 概述
1. jdk 9 的发布
经过4次跳票,历经曲折的java 9 终于终于在2017年9月21日发布。
2. Java 9 中哪些不得不说的新特性?
java 9 提供了超过 150 项新功能特性,包括备受期待的模块化系统、 可交互的 REPL 工具:jshell,JDK 编译工具,Java 公共 API 和私有代码,以及安全增强、扩展提升、性能管理改善等。可以说 Java 9 是 一个庞大的系统工程,完全做了一个整体改变。
具体来讲:
模块化系统 jShell 命令 多版本兼容 jar 包 接口的私有方法 钻石操作符的使用升级 语法改进:try 语句 下划线使用限制 String 存储结构变更 便利的集合特性:of() 增强的 Stream API 多分辨率图像 API 全新的 HTTP 客户端 API Deprecated 的相关 API 智能 Java 编译工具 统一的 JVM 日志系统 javadoc 的 HTML 5 支持 Javascript 引擎升级:Nashorn java 的动态编译器
4. java 语言后续版本的更迭
从Java 9 这个版本开始,Java 的计划发布周期是 6 个月,下一个 Java 的主版本将于 2018 年 3 月发布,命名为 Java 18.3,紧 接着再过六个月将发布 Java 18.9。
这意味着java的更新从传统的以特性驱动的发布周期,转变为以时间驱动的(6 个月为周期)发布模式,并逐步的将 Oracle JDK 原商业特性进行开源。
针对企业客户的需求,Oracle 将以三年为周期发布长期支持版本 (long term support)。
5. 如何看待 java 9 的更新
Java 更快的发布周期意味着开发者将不需要像以前一样为主要发布版本望眼欲穿。这也意味着开发者将可能跳过 Java 9 和它的不成熟的模块化功能,只需要再等待 6 个月就可以迎来新版本,这将可能解决开发者的纠结。
二、 java 9 的安装和官网说明
1.jdk 9 的下载
https://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
2. java 9 帮助文档的下载
http://www.oracle.com/technetwork/java/javase/documentation/jdk9-d oc-downloads-3850606.html
https://docs.oracle.com/javase/9/
三、Java 9 的新特性
https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-527735CF-44E1-4144-919B-E7D7CC9CDD4D
或参考 Open JDK: https://openjdk.java.net/projects/jdk9/
http://openjdk.java.net/jeps/0
1. JDK 和 JRE 的改变
1.1 JDK 与 JRE 的关系
说明:
JDK = JRE + 开发工具集(例如 Javac 编译工具等)
JRE = JVM + Java SE 标准类库
1.2 JDK 8 的目录结构
bin 目录 | 包含命令行开发和调试工具,如 javac ,jar 和 javadoc。 |
include目录 | 包含在编译本地代码时使用的C/C++头文件 |
lib 目录 | 包含JDK工具的几个JAR和其他类型的文件。它有一个tools.jar 文件,其中包含 Javac 编译器的 Java 类 |
jre/bin 日录 | 包含基本命令,如 java 命令。在 Windows平台上,它包含系统的运行时动态链接库(DLL)。 |
jre/lib 目录 | 包含用户可编辑的配置文件,如 .properties和 .policy文件。包含几个JAR ,rt.jar文件包含运行时的 Java 类和资源文件。 |
1.3 JDK 9 的目录结构
没有名为 jre 的子目录 | |
bin 目录 | 包含所有命令。 在 Windows 平台上,它继续包含系 统的运行时动态链接库。 |
conf 目录 | 包含用户可编辑的配置文件,例如以前位于 jre\lib 目 录中的.properties 和.policy 文件 |
include 目录 | 包含要在以前编译本地代码时使用的 C/C++头文件。 它只存在于 JDK 中 |
jmods 目录 | 包含 JMOD 格式的平台模块。 创建自定义运行时映像 时需要它。 它只存在于 JDK 中 |
legal 目录 | 包含法律声明 |
lib 目录 | 包含非 Windows 平台上的动态链接本地库。 其子目 录和文件不应由开发人员直接编辑或使用 |
四、总结
原文地址:https://www.cnblogs.com/wsming/p/15014854.html
- zabbix最新SQL注入漏洞+EXP
- 本地密码检索工具 – LaZagne Project
- 我是如何在SQLServer中处理每天四亿三千万记录的
- 程序猿是如何解决SQLServer占CPU100%的
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
- 分享一个自制的 .net线程池1
- 分享一个自制的 .net线程池2
- 基于百度翻译的简单爬虫翻译-- coding:utf-8 --访问网址模拟浏览器创建文件夹用一个text文件保存,文件名用单词名字
- .net采集网页方法大全(5种)
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- 中文分词之结巴分词~~~附使用场景+demo(net)
- 用微信二维码登录自己的网站
- 2620: [Usaco2012 Mar]Haybale Restacking
- 1671: [Usaco2005 Dec]Knights of Ni 骑士
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Linux server配置安装Java与Tomcat服务器教程详解
- Ubuntu系统下安装ImageMagick出错的解决过程
- linux 远程控制windows系统下的程序(三种方法)
- 详解Linux上svn命令行批量操作
- 详解linux ntp服务器时间同步设置
- CentOS设置静态IP的方法总结
- ubuntu服务器上快速部署docker的方法
- centos7使用supervisor的详细教程
- Ubuntu安装PHP和PHP Nginx配置方法
- Django在Ubuntu14.04的部署方法
- ubuntu19系统及以下版本安装android studio的教程
- CentOS7升级内核kernel5.0版本
- 详解ubuntu14.04如何设置静态IP的方法
- linux安装图形化界面的操作方法
- Apache FlinkCEP 实现超时状态监控的步骤详解