已经到java17,java的发展真快的,java敢说第二,没人敢说第一啊,very hot。

JDK

JDK 全称 Java Development Kit,是 Java 开发环境。我们通常所说的 JDK 指的是 Java SE (Standard Edition) Development Kit。除此之外还有 Java EE(Enterprise Edition)和 Java ME(Micro Edition platforms)。

Java SE 是做电脑上运行的软件。

Java EE 是用来做网站的-(我们常见的JSP技术)

Java ME 是做手机软件的。

1995年JDK BETA版本,WebRunner

1996年JDK 1.0发布,叫做为Oak

Java SE1.1(新特性)

内部类

JDBC

JavaBeans

Java SE1.2

Java集合框架

Swing图像化API

JIT编译器

Java SE1.3

HotSpot JVM

JNDI

JPDA

用于实现动态代理的类

Java SE1.4

assert

关键字异常链

NIO

Java SE5.0

泛型

元数据

自动封箱、自动拆箱

枚举

可变参数函数

强化for each循环

Swing

java.util.concurrent包

Java SE6

支持JDBC 4.0

Java SE7

在switch中使用字符串类型

try-with-resources

新的invokedynamic字节码指令

允许在数值字面值中加入下划线

Java SE8

Lambda表达式

Nashorn

移除了虚拟机内存管理中的永久代

新的日期和时间 API

Java SE9

Jigsaw项目中将JDK模块化

jshell

jlink

Java SE10

局部变量类型推断

适用于G1的多线程完全垃圾回收

Java SE 11

ZGC

Epsilon

Java SE12

Shenandoah

Switch 表达式

Java SE13

Text Blocks(预览阶段)

动态 CDS 归档

Java SE14

Records

Switch 表达式

友好的空指针异常

打包工具

java SE15(14 个新特性

Edwards-Curve Digital Signature Algorithm (EdDSA)

Edwards-Curve 数据签名算法(EdDSA),一种根据 RFC 8032 规范所描述的 Edwards-Curve 数字签名算法(EdDSA)实现加密签名,实现了一种 RFC 8032 标准化方案,但它不能代替 ECDSA。

Sealed Classes (Preview)

封闭类(预览特性),可以是封闭类和或者封闭接口,用来增强 Java 编程语言,防止其他类或接口扩展或实现它们。

Hidden Classes

隐藏类,这一看也是个很有意思的特性。

隐藏类是为框架(frameworks)所设计的,隐藏类不能直接被其他类的字节码使用,只能在运行时生成类并通过反射间接使用它们。

Remove the Nashorn JavaScript Engine

移除了 Nashorn JavaScript 脚本引擎、APIs,以及 jjs 工具。这些早在 JDK 11 中就已经被标记为 deprecated 了,JDK 15 被移除就很正常了。

Reimplement the Legacy DatagramSocket API

重新实现了老的 DatagramSocket API 接口,更改了 java.net.DatagramSocket 和 java.net.MulticastSocket 为更加简单、现代化的底层实现,更易于维护和调试。

Disable and Deprecate Biased Locking

准备禁用和废除偏向锁,在 JDK 15 中,默认情况下禁用偏向锁,并弃用所有相关的命令行选项。

Pattern Matching for instanceof (Second Preview)

模式匹配(第二次预览)

ZGC: A Scalable Low-Latency Garbage Collector

ZGC:一个可伸缩、低延迟的垃圾回收器。

Text Blocks

文本块,是一个多行字符串,它可以避免使用大多数转义符号,自动以可预测的方式格式化字符串,并让开发人员在需要时可以控制格式。

Shenandoah: A Low-Pause-Time Garbage Collector

Shenandoah:一个低停顿时间的垃圾回收器。

java SE16(17个新特性)

Pattern Matching for instanceof(模式匹配 for instanceof)
Records(14里面的记录)
Packaging Tool(提供了 jpackage 打包工具,可用于打包独立的 Java 应用程序)
Elastic Metaspace(弹性的元空间)
ZGC: Concurrent Thread-Stack Processing

ZGC 最早是在 JDK 11 中集成进来的,在 JDK 15 中正式转正。

这个版本则是为了让 ZGC 支持并发栈处理,解决了最后一个重大瓶颈,把 ZGC 中的线程栈处理从安全点移到了并发阶段。并且还提供了一种机制,使得其他 HotSpot 子系统可以通过该机制延迟处理线程栈。

UNIX-Domain Socket Channels

UNIX 域套接字通道,为 java.nio.channels 包中的套接字通道和服务端套接字通道 APIs 增加 Unix 域套接字通道所有特性支持。

UNIX 域套接字主要用于同一主机上的进程间通信(IPC),大部分方面与 TCP/IP套接字类似,不同的是 UNIX 域套接字是通过文件系统路径名寻址,而不是通过 IP 地址和端口号。

Strongly Encapsulate JDK Internals by Default

JDK 内部默认强封装,JDK 16 开始对 JDK 内部大部分元素默认进行强封装,sun.misc.Unsafe 之类的关键内部 API 除外,从而限制对它们的访问。

此外,用户仍然可以选择自 JDK 9 以来的默认的宽松的强封装,这样可以帮助用户毫不费力地升级到未来的 Java 版本。

Warnings for Value-Based Classes

基于值的类的警告,将基础类型包装类指定为基于值的类,废除其构造函数以进行删除,从而提示新的弃用警告。并且提供了在任何基于值的类的实例上不正常进行同步的警告。

Vector API (Incubator)

Vector API 这是一个新的初始迭代孵化器模块,模块包:jdk.incubator.vector,用于表示在运行时可靠地编译到支持的 CPU 架构上的最佳矢量硬件指令的矢量计算。

Foreign Linker API (Incubator)

引入了一个新的 API,该 API 提供了对本地 native 代码的静态类型访问支持。

Foreign-Memory Access API (Third Incubator)

外部内存访问 API(三次孵化中),引入了一个新的 API,可以帮助 Java 应用程序更安全、有效地访问 Java 堆之外的外部内存。

Sealed Classes (Second Preview)

封闭类(二次预览),可以是封闭类和或者封闭接口,用来增强 Java 编程语言,防止其他类或接口扩展或实现它们。
Enable C++14 Language Features (in the JDK source code)

允许在 JDK 底层的 C ++ 源代码中使用 C ++ 14 的新语言特性,并且提供了在 HotSpot 虚拟机代码中
Migrate from Mercurial to Git

将 OpenJDK 社区的源代码存储库从 Mercurial(hg)迁移到 Git。

Migrate to GitHub

在 GitHub 上托管 OpenJDK 社区的 Git 存储库。
Alpine Linux Port

在 x64 和 AArch64 平台体系结构上,将 JDK 移植到 Alpine Linux 以及使用 musl 作为其主要 C 语言库的其他 Linux 发行版中。
Windows/Aarch64 Port

将 JDK 移植到 Windows/ AArch64 平台系列。

JAVA SE17

恢复始终严格的浮点语义
增强的伪随机数生成器
使用新的 macOS 渲染库
支持 macOS/AArch64 架构
删除已启用的 Applet API
更强的封装 JDK 内部封装
Switch 模式匹配(预览)
 移除 RMI Activation
密封类(Sealed Classes)
移除实验性的 AOT 和 JIT 编译器
弃用 Security Manager
外部函数和内存 API(孵化器)
Vector API(第二孵化器)
指定上下文的反序列化过滤器

参考:https: //www.cnblogs.com/javazhiyin/p/11394448.html

参考:https: //www.cnblogs.com/niumoo/p/15522730.html

java历史版本新特性相关推荐

  1. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结...

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  2. tomcat历史版本新特性_tomcat升级后报错RFC 7230 and RFC 3986

    将皕杰报表demoserver中的演示项目report部署到tomcat8最新版本后,当访问报表的URL中含有中文时,访问报表报错如下: 十一月 11, 2019 2:38:58 下午 org.apa ...

  3. JAVA个版本新特性

    JDK Version 1.1 1997-02-19 JDBC(Java DataBase Connectivity); 支持内部类; RMI(Remote Method Invocation) ; ...

  4. tomcat历史版本新特性_OBS V26大版本新特性简介

    9月底10月初OBS又双叒更新了,大版本来到了V26, 这一次又增加了不少实用功能.今天就给大家逐一介绍一下V26版本的主要功能,原文链接如下: https://github.com/obsproje ...

  5. Java SE 6 新特性 Instrumentation 新功能

    系列内容: 此内容是该系列的一部分:Java SE 6 新特性 Instrumentation 简介 利用 Java 代码,即 java.lang.instrument 做动态 Instrumenta ...

  6. JDK 15 JAVA 15的新特性展望

    文章目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: ...

  7. 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势

    [小家java]java5新特性(简述十大新特性) 重要一跃 [小家java]java6新特性(简述十大新特性) 鸡肋升级 [小家java]java7新特性(简述八大新特性) 不温不火 [小家java ...

  8. Java SE 6 新特性: 对脚本语言的支持 [VERY GOOD]

    Java SE 6 新特性: 对脚本语言的支持 [VERY GOOD] Java SE 6 新特性: 对脚本语言的支持 Java SE 6 新特性: 对脚本语言的支持 邱 小侠 (qiuxiaox@c ...

  9. Java SE 8 新特性之旅 : Java开发世界的大变动

    我很自豪的成为了adopt-OpenJDK的一员,像其他专业团队成员一样,但是我只刚加入了8个月,我们一同经历了Java SE 8 的开发.编译.编码.讨论--等等,直到JDK上线.Java SE 8 ...

最新文章

  1. 帝国 php 7.0 默认 后台用户名及认证码,帝国CMS后台管理员帐号密码、认证码、安全答案忘记了怎么办?...
  2. 我的NHibernate之路(1)---基本配置篇
  3. Python基础教程(七):函数、模块
  4. JNDI数据源的使用
  5. 周杰伦178首歌被网易云侵权 单曲仅获赔4500元
  6. oracle新建用户,授权,建表空间语句
  7. oracle密码过期处理方法
  8. 公众号下面显示一排服务器,新技能get 微信公众号文章花式排版大法
  9. 第九天:操作符详解(一)与扫雷游戏
  10. 规范小区电瓶车充电桩的分布保障充电安全
  11. 电阻电路的等效变化(Ⅱ)
  12. 程序龙的密码(递归算法)
  13. 消防中计算机基础知识,消防基础知识考试题
  14. HTML音频视频标签
  15. 硬盘录像机服务器地址谁控制的,海康硬盘录像机通用设置方法
  16. edge,Chrome浏览器被360主页劫持极简解决方案(win10)
  17. be 动词 时态变化
  18. 利用特征根方程实现通项公式与递推关系的互换
  19. ios safari 模拟器_web测试-ios设备模拟器(iOS Simulator)
  20. KeyError(‘metric mAP is not supported‘.format(metric))

热门文章

  1. 【QT小记】QT中如何弹起菜单
  2. Linux [异步传输]
  3. CSDN社区运营午餐会第17期–炎炎夏日,请人吃饭不如请人游泳
  4. 浅谈函数式编程与 Java Stream
  5. 导致程序员跳槽的原因
  6. 将文件夹下的所有文件名写入txt中
  7. 什么是损失函数?通俗理解
  8. ADSL猫+无线路由=多台机器同时上网
  9. 双目立体视觉(1)- ZED2双目相机介绍
  10. 深度学习pytorch代码:dilation空洞卷积、最大池化