点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试资料

作者:Byte_Liu   来源:http://byteliu.com

Java语言的相关组织和规范(其他语言也有类似的组织):

JCP:(Java Community Process)由世界上各个为 Java 发展操心的人士组成的社区,参与

定义 Java 新特性和新版本制定标准的组织。

JSR:(Java Specification Requests)Java 语言规范请求文档,你可以对 Java 提出新的要求,然后 Java 相关的组织投票决定是否通过,通过后就将这个要求写入 JSR 中,并且最终给出一个开源的实现。

JEP:(Java Enhancement Proposal),Java 增强建议,收集大家对于 JDK 的建议,起草增强 Java 哪些功能的方案,为 JDK 新版本发布及相关工作指定路线。

# JAVA 1.0 ,代号Oak(橡树)

于1996-01-23发行

# JAVA 1.1

1997-02-19发行,主要更新内容:

1.引入JDBC

2.添加内部类支持

3.引入JAVA BEAN

4.引入RMI

5.引入反射

# JAVA 1.2, 代号Playground(操场)

1998-12-8发行,主要更新内容:

1.引入集合框架

2.对字符串常量做内存映射

3.引入JIT(Just In Time)编译器

4.引入打包文件数字签名

5.引入控制授权访问系统资源策略工具

6.引入JFC(Java Foundation Classes),包括Swing1.0,拖放和Java2D类库

7.引入Java插件

8.JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型

9.Applet中添加声音支持

# JAVA1.3,代号Kestrel(红隼)

2000-5-8发布,主要更新内容:

1.引入Java Sound API

2.引入jar文件索引

3.对Java各方面多了大量优化和增强

4.Java Platform Debugger Architecture用于 Java 调式的平台。

# JAVA 1.4,代号Merlin(隼)

2004-2-6发布(首次在JCP下发行),主要更新内容:

1.添加XML处理

2.添加Java打印服务(Java Print Service API)

3.引入Logging API

4.引入Java Web Start

5.引入JDBC 3.0 API

6.引入断言

7.引入Preferences API

8.引入链式异常处理

9.支持IPV6

10.支持正则表达式

11.引入Image I/O API

12.NIO,非阻塞的 IO,优化 Java 的 IO 读取。

# JDK  5.0,代号Tiger(老虎),有重大改动

2004-9-30发布,主要更新内容:

1.引入泛型

2.For-Each循环 增强循环,可使用迭代方式

3.自动装箱与自动拆箱

4.引入类型安全的枚举

5.引入可变参数

6.添加静态引入

7.引入注解

8.引入Instrumentation

9.提供了 java.util.concurrent 并发包。

# JDK 6,代号Mustang(野马)

2006-12-11发布,主要更新内容:

1.引入了一个支持脚本引擎的新框架(基于 Mozilla Rhino 的 JavaScript 脚本引擎)

2.UI的增强

3.对WebService支持的增强(JAX-WS2.0 和 JAXB2.0)

4.引入JDBC4.0API

5.引入Java Compiler API

6.通用的Annotations支持

# JDK 7,代号Dolphin(海豚)

2011-07-28发布,这是sun被oracle收购(2009年4月)后的第一个版本,主要更新内容:

1.switch语句块中允许以字符串作为分支条件

2.在创建泛型对象时应用类型推断,比如你之前版本使用泛型类型时这样写 ArrayList<User> userList= new ArrayList<User>();,这个版本只需要这样写 ArrayList<User> userList= new ArrayList<>();,也即是后面一个尖括号内的类型,JVM 帮我们自动类型判断补全了。

3.在一个语句块中捕获多种异常

4.添加try-with-resources语法支持,使用文件操作后不用再显示执行close了。

5.支持动态语言

6.JSR203, NIO.2,AIO,新I/O文件系统,增加多重文件的支持、文件原始数据和符号链接,支持ZIP文件操作

7.JDBC规范版本升级为JDBC4.1

8.引入Fork/Join框架,用于并行执行任务

9.支持带下划线的数值,如 int a = 100000000;,0 太多不便于人阅读,这个版本支持这样写 int a = 100_000_000,这样就对数值一目了然了。

10.Swing组件增强(JLayer,Nimbus Look Feel…)参考

# JDK 8

2014-3-19发布,oracle原计划2013年发布,由于安全性问题两次跳票,是自JAVA5以来最具革命性的版本,主要更新内容:

1.接口改进,接口居然可以定义默认方法实现和静态方法了。

2.引入函数式接口

3.引入Lambda表达式

4.引入全新的Stream API,提供了对值流进行函数式操作。

5.引入新的Date-Time API

6.引入新的JavaScrpit引擎Nashorn

7.引入Base64类库

8.引入并发数组(parallel)

9.添加新的Java工具:jjs、jdeps

10.JavaFX,一种用在桌面开发领域的技术

11.静态链接 JNI 程序库

# JDK 9

2017-9-21发布

1.模块化(jiqsaw)

2.交互式命令行(JShell)

3.默认垃圾回收期切换为G1

4.进程操作改进

5.竞争锁性能优化

6.分段代码缓存

7.优化字符串占用空间

# JDK 10

2018-3-21发布

1.JEP286,var 局部变量类型推断。

2.JEP296,将原来用 Mercurial 管理的众多 JDK 仓库代码,合并到一个仓库中,简化开发和管理过程。

3.JEP304,统一的垃圾回收接口。

4.JEP307,G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。

5.JEP310,应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。

6.JEP312,ThreadLocal 握手交互。在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。

7.JEP313,移除 JDK 中附带的 javah 工具。可以使用 javac -h 代替。

8.JEP314,使用附加的 Unicode 语言标记扩展。

9.JEP317,能将堆内存占用分配给用户指定的备用内存设备。

10.JEP317,使用 Graal 基于 Java 的编译器,可以预先把 Java 代码编译成本地代码来提升效能。

11.JEP318,在 OpenJDK 中提供一组默认的根证书颁发机构证书。开源目前 Oracle 提供的的 Java SE 的根证书,这样 OpenJDK 对开发人员使用起来更方便。

12.JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为\$FEATURE.\$INTERIM.\$UPDATE.\$PATCH,分别是大版本,中间版本,升级包和补丁版本。

# JDK  11

2018-9-25发布

官网公开的 17 个 JEP(JDK Enhancement Proposal 特性增强提议):

1.JEP181: Nest-Based Access Control(基于嵌套的访问控制)

2.JEP309: Dynamic Class-File Constants(动态的类文件常量)

3.JEP315: Improve Aarch64 Intrinsics(改进 Aarch64 Intrinsics)

4.JEP318: Epsilon: A No-Op Garbage Collector(Epsilon 垃圾回收器,又被称为”No-Op(无操作)”回收器)

5.JEP320: Remove the Java EE and CORBA Modules(移除 Java EE 和 CORBA 模块,JavaFX 也已被移除)

6.JEP321: HTTP Client (Standard)

7.JEP323: Local-Variable Syntax for Lambda Parameters(用于 Lambda 参数的局部变量语法)

8.JEP324: Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法实现的密钥协议)

9.JEP327: Unicode 10

10.JEP328: Flight Recorder(飞行记录仪)

11.JEP329: ChaCha20 and Poly1305 Cryptographic Algorithms(实现 ChaCha20 和 Poly1305 加密算法)

12.JEP330: Launch Single-File Source-Code Programs(启动单个 Java 源代码文件的程序)

13.JEP331: Low-Overhead Heap Profiling(低开销的堆分配采样方法)

14.JEP332: Transport Layer Security (TLS) 1.3(对 TLS 1.3 的支持)

15.JEP333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段)

16.JEP335: Deprecate the Nashorn JavaScript Engine(弃用 Nashorn JavaScript 引擎)

17.JEP336: Deprecate the Pack200 Tools and API(弃用 Pack200 工具及其 API)

# JDK 12

2019-3-19发布

1.JEP189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)

2.JEP230:Microbenchmark Suite

3.JEP325:Switch Expressions (Preview)

4.JEP334:JVM Constants API

5.JEP340:One AArch64 Port, Not Two

6.JEP341:Default CDS Archives

7.JEP344:Abortable Mixed Collections for G1

8.JEP346:Promptly Return Unused Committed Memory from G1

# JDK 13

2019-9-17 发布

1.JEP350:Dynamic CDS Archives

2.JEP351:ZGC: Uncommit Unused Memory

3.JEP353:Reimplement the Legacy Socket API

4.JEP354:Switch Expressions

5.JEP355:Text Blocks

# JDK 14

正在开发阶段,预计解决的任务。

2019/12/12 Rampdown Phase One (fork from main line)

2020/01/16 Rampdown Phase Two

2020/02/06 Initial Release Candidate

2020/02/20 Final Release Candidate

2020/03/17 General Availability

热门内容:

  • AJAX 请求真的不安全么?

  • 你知道为什么Java的main方法必须是public static void?

  • 谈谈中间件开发,给想从事中间件开发的同学

  • 大年夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我

  • 代码神器:拒绝重复编码,这款IDEA插件了解一下.....

  • 问题很难,要慌,redis到底单线程还是多线程

  • SpringBoot实现过滤器、拦截器与切片

  • 阿里面试官:分别说说微信和淘宝扫码登录背后的实现原理?

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

它,是一部全网最全的JDK发展历史轨迹图...相关推荐

  1. 一部全网最全的 JDK 发展历史轨迹图

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 Java语言的相关组织和规范(其他语言也有类似的组织): ...

  2. 全网最全的JQuery框架思维导图来了

    也许有人会问,都21年了前端仔还要学习jq框架吗?我的答案是,你可以不学,但个人建议还是学习了解一下.学了jQuery对写代码和封装库都有帮助,一些老项目维护也需要用到.既然是学习了解不必太深究的,看 ...

  3. JDK发展历史以及版本特性

    1995年5月23 java(原名Oak)诞生,并且在SunWorld大会上正式发表了java1.0版本. 1996年1月23 JDK1.0发布Java语言有了第一个正式版本的运行环境.JDK1.0提 ...

  4. 可能是全网最全,JAVA日志框架适配/冲突解决方案,可以早点下班了

    点击关注公众号,Java干货及时送达 你是否遇到过配置了日志,但打印不出来的情况? 你是否遇到过配置了logback,启动时却提示log4j错误的情况?像下面这样: log4j:WARN No app ...

  5. 获取frame_用Python获取可能是全网最全的杰尼龟表情包(第一弹)

    杰尼龟系列表情包在广大网友之间传递快乐,红极一时.我想是杰尼龟可爱的外表以及憨憨的形态,圆圆的脸蛋大大的眼睛,且其经常在剧中摆出各式夸张表情,因而被广大网友制成各式各样的表情包,并且深受沙雕网友的喜爱 ...

  6. 推荐:全网最全的Java并发面试题及答案。

    转载自  推荐:全网最全的Java并发面试题及答案. 1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程 ...

  7. 怎么用Python获取全网最全的杰尼龟表情包

    杰尼龟系列表情包在广大网友之间传递快乐,红极一时.我想是杰尼龟可爱的外表以及憨憨的形态,圆圆的脸蛋大大的眼睛,且其经常在剧中摆出各式夸张表情,因而被广大网友制成各式各样的表情包,并且深受沙雕网友的喜爱 ...

  8. 可能是全网最全的 Java 日志框架适配、冲突解决方案

    作者:空无 juejin.cn/post/6945220055399399455 前言 你是否遇到过配置了日志,但打印不出来的情况? 你是否遇到过配置了logback,启动时却提示log4j错误的情况 ...

  9. 全网最全获取设计灵感创意的网站

    在艺术设计中,创意更是尤为重要,它在某种程度上控制着设计的灵魂,犹如一道闪光,一下子照亮.打通了设计师的思路.我在网上收集了许多令人瞠目的和漂亮的网站,一定会给予你很多设计灵感.这些网站都是精心设计的 ...

最新文章

  1. C++继承的概念及语法
  2. 【学习笔记】4、Jupyter Notebook闪退问题
  3. usb 系统消息_4. Autoware 系统框架概揽
  4. Uploadify3.2中文提示
  5. 一个div 上下两行_web前端工程师如何理解 CSS 布局和块级格式化上下文
  6. jquery html5引导页,jQuery插件实现的页面功能介绍引导页效果
  7. 利用Pattern和Mather来禁止特殊字符的输入
  8. as3 socket 跨域连接
  9. 关于vs08生成解决方案慢的解决方法
  10. 华为交换机模拟器为什么不能配置IP(或反)?如何在华为设备上配置远程管理设备?如何保存ENSP的配置...
  11. C语言编程题必须运行吗,全国计算机二级c语言的的操作题一定要运行吗?
  12. android刷脸支付宝,安卓手机可以支付宝刷脸吗 刷脸登陆安卓机能用吗
  13. Win11有几个版本 Windows 11各版本区别对比
  14. 刘国忠:顺周期股受资金青睐,但能走多远还是未知!
  15. 第一章:自己动手写区块链之最小可行区块链
  16. 征途对计算机配置要求,征途2配置要求是什么?
  17. centos7上部署php7遇到的坑
  18. K8s-kubectl远程管理集群
  19. 谷歌中阻止冒泡在火狐中失效_如何在Google表格中乘数字
  20. 利用Docker 映射到主机端口 32768 ,通过浏览器访问web应用失败

热门文章

  1. [原创]Android Monkey 在线日志分析工具开发
  2. JSON字符串 拼接与解析
  3. 20169212 2016-2017-2 《网络攻防实践》第四周学习总结
  4. [转]Membership 到 .NET4.5 之 ASP.NET Identity
  5. Linux(Centos)之安装Java JDK及注意事项
  6. [亲测]在Mac下配置php开发环境:Apache+php+MySql
  7. 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)
  8. (转)利用ArcScene进行三维地形模拟
  9. 股市币市:数据分析与交易所公告(20190227)
  10. 【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)