当前位置: 首页 > news >正文

JDK9特性——概述

文章目录

  • 引言
  • JDK9特性概述
  • JDK9的改变
  • JDK和JRE目录变化
  • 总结

在这里插入图片描述

引言

JAVA8 及之前,版本都是特性驱动的版本更新,有重大的特性产生,然后进行更新。

JAVA9开始,JDK开始以时间为驱动进行更新,以半年为周期,到时即更新,三年出一个长期支持版,其他都是短暂的版本。

目前长期支持版有 JAVA8 、JAVA11 和JAVA17,这些版本在将来的工作中使用的概率更高,也就是说我们将来研发,使用JAVA11、JAVA17 是必然的,只是一个时间的问题。

JDK9特性概述

经过4次推迟,历经曲折的Java9最终在2017年9月21日发布。因为里面加入的模块化系统,在最初设想的时候并没有想过那么复杂,花费的时间超出预估时间。

Java 9提供了超过150项新功能特性,包括备受期待的模块化系统、可交互的REPL工具(Read Eval Print Loop,交互式解释器): jshell、JDK编译工具,语法层面的改变以及安全增强、扩展提升、性能管理改善等。可以说Java 9是一个庞大的系统工程,完全做了一个整体改变。

但是这个巨大改变的功劳,都给了java11了,目前oracle对8,11都长期支持,9,10不支持了,只能从历史版本(http://jdk.java.net/)中下载,Java 11 将会获得 Oracle 提供的长期支持服务,直至2026年9月。

Java的更新从传统的以特性驱动的发布周期,转变为以时间驱动的(6个月为周期)发布模式,更快的时间周期,oracle的理念就是小步快跑,快速迭代(不同与IBM的DB2数据库,内部测试才投入之后市场),并逐步的将Oracle JDK原商业特性进行开源。

JDK9的改变

JDK9的具体变化在下面的思维导图中呈现:

在这里插入图片描述

官方提供的新特性的列表

https://docs.oracle.com/javase/9/whatsnew/toc.htm#JSNEW-GUID-C23AFD78-C777-460B-8ACE-58BE5EA681F6

openJDK 可参考源码

http://openjdk.java.net/projects/jdk9/

在线 OracleJDK Documentation 在线文档

https://docs.oracle.com/javase/9/

JDK和JRE目录变化

JAVA9开始JDK和JRE的目录发生了变化,如下:

Java8的目录
image.png

目录介绍:

bin 包含命令行开发和调试工具 如javac jar javadoc

include 包含编译本地代码时使用的c/c++头部文件

lib 包含JDK工具的几个jar和其他类型的文件,他有一个tools.jar文件,其中含javac编译器的java类

jre/bin目录 包含基本指令,如java指令,在windows平台上,它包含系统的运行时动态链接

jre/lib包含用户可编辑的配置文件,如properties和.policy文件,包含几个jar文件,rt.jar文件包含运行时的java类和资源文件

Java9的目录
image.png

目录介绍:

bin 包含所有指令,在windows平台上,他继续包含系统的运行时动态链接

conf目录 包含用户可编辑的配置文件,例如之前位于jre/lib目录中的.properties和policy

includes 包含在以前编译本地代码时使用c/c++头文件,他只存在于JDK中

jmods 包含JMOD格式的平台模块,创建自定义运行时映像需要他,它只存在于jdk中

legal 法律声明

lib 包含非windows平台上的动态链接本地库,其子目录和文件不应由开发人员直接编译或使用

从9开始以后的JDK目录结构都是如此

总结

  1. JAVA8之前,版本都是特性驱动的版本更新,JAVA9开始,JDK开始以时间为驱动进行更新。
  2. 根据发布周期,JAVA11、JAVA17 是一个长期维护的版本。
  3. 虽然JAVA9是一个短暂的版本,但是在提供的功能特性上有很大的功劳。
http://www.lryc.cn/news/168821.html

相关文章:

  • 征战开发板从无到有(三)
  • Linux设备树详细学习笔记
  • 【系统架构】系统架构设计基础知识
  • 快递、外卖、网购自动定位及模糊检索收/发件地址功能实现
  • Springboot后端导入导出excel表
  • 通过stream流实现分页、模糊搜索、按列过滤功能
  • webpack:系统的了解webpack一些核心概念
  • Unreal Engine Loop 流程
  • FLASK中的鉴权的插件Flask-HTTPAuth
  • linux万字图文学习进程信号
  • DataX实现Mysql与ElasticSearch(ES)数据同步
  • 第二章 进程与线程 十、调度算法1(先来先服务、短作业优先、最高响应比优先)
  • windows平台 git bash使用
  • Linux系统之安装uptime-kuma服务器监控面板
  • 计算机组成原理——基础入门总结(一)
  • 批量获取CSDN文章对文章质量分进行检测,有助于优化文章质量
  • 从一到无穷大 #17 Db2 Event Store,A Purpose-Built IoT Database Engine
  • 9月16日,每日信息差
  • 准备篇(二)Python 教程
  • HTML+CSS画一个卡通中秋月饼
  • echarts的折线图,在点击图例后,提示出现变化,不报错。tooltip的formatter怎么写
  • C++中的auto是一个关键字,用于在编译时自动推导变量的类型
  • VUE build:gulp打包:测试、正式环境
  • 1.使用turtle换一个五环2.设计这样一个程序:输入一个数字 判断它是不是一个质数
  • C语言希尔排序
  • KubeSphere 在互联网医疗行业的应用实践
  • 物联网:用python调入机器学习分析物联网数据入侵检测模块
  • 使用scss简化媒体查询
  • win部署CRM
  • Linux命令200例:dip用于用户与远程主机建立通信连接