首页 > 其他分享 >各个JDK版本介绍

各个JDK版本介绍

时间:2024-03-14 15:01:43浏览次数:20  
标签:各个 JDK G1 特性 API GC 版本 引入 线程

1.1.JDK8新特性(2014年初)(LTS版本)
1、Lambda表达式
2、函数式编程
3、接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法
4、方法引用
5、重复注解,同一个注解可以使用多次
6、引入Optional来避免空指针
7、引入Streams相关的API
8、引入新的Date/Time相关的API
9、新增jdeps命令行,来分析类、目录、jar包的类依赖层级关系
10、JVM使用MetaSpace代替了永久代(PermGen Space)
重要特性:Lambda表达式、函数式接口、方法引用、Stream流式API、采用MetaSpace代替了永久代(PermGen Space)

1.2.JDK9新特性(2017年9月)
1、接口方法可以使用private来修饰
2、设置G1为JVM默认垃圾收集器
3、支持http2.0和websocket的API
重要特性:主要是API的优化,如支持HTTP2的Client API、JVM采用G1为默认垃圾收集器

1.3.JDK10新特性(2018年3月)
1、局部变量类型推断,类似JS可以通过var来修饰局部变量,编译之后会推断出值的真实类型
2、并行Full GC,来优化G1的延迟
3、允许在不执行全局VM安全点的情况下执行线程回调,可以停止单个线程,而不需要停止所有线程或不停止线程
重要特性:通过var关键字实现局部变量类型推断,使Java语言变成弱类型语言、JVM的G1垃圾回收由单线程改成多线程并行处理,降低G1的停顿时间

1.4.JDK11新特性(2018年9月)(LTS版本)
1、ZGC,ZGC可以看做是G1之上更细粒度的内存管理策略。由于内存的不断分配回收会产生大量的内存碎片空间,因此需要整理策略防止内存空间碎片化,在整理期间需要将对于内存引用的线程逻辑暂停,这个过程被称为"Stop the world"。只有当整理完成后,线程逻辑才可以继续运行。(并行回收)
2、Flight Recorder(飞行记录器),基于OS、JVM和JDK的事件产生的数据收集框架
3、对Stream、Optional、集合API进行增强
重要特性:对于JDK9和JDK10的完善,主要是对于Stream、集合等API的增强、新增ZGC垃圾收集器

1.5.JDK12新特性(2019年3月)
1、Shenandoah GC,新增的GC算法
2、switch 表达式语法扩展,可以有返回值
3、G1收集器的优化,将GC的垃圾分为强制部分和可选部分,强制部分会被回收,可选部分可能不会被回收,提高GC的效率
重要特性:switch表达式语法扩展、G1收集器优化、新增Shenandoah GC垃圾回收算法

1.6.JDK13新特性(2019年9月)
1、Socket的底层实现优化,引入了NIO;
2、switch表达式增加yield关键字用于返回结果,作用类似于return,如果没有返回结果则使用break;
3、ZGC优化,将标记长时间空闲的堆内存空间返还给操作系统,保证堆大小不会小于配置的最小堆内存大小,如果堆最大和最小内存大小设置一样,则不会释放内存还给操作系统;
4、引入了文本块,可以使用"""三个双引号表示文本块,文本块内部就不需要使用换行的转义字符;
重要特性:ZGC优化,释放内存还给操作系统、socket底层实现引入NIO

1.7.JDK14新特性(2020年3月)
1、instanceof类型匹配语法简化,可以直接给对象赋值,如if(obj instanceof String str),如果obj是字符串类型则直接赋值给了str变量;
2、引入record类,类似于枚举类型,可以向Lombok一样自动生成构造器、equals、getter等方法;
3、NullPointerException打印优化,打印具体哪个方法抛的空指针异常,避免同一行代码多个函数调用时无法判断具体是哪个函数抛异常的困扰,方便异常排查;

1.8.JDK15新特性(2020年9月)
1、隐藏类 hidden class;
2、密封类 sealed class,通过sealed关键字修饰抽象类限定只允许指定的子类才可以实现或继承抽象类,避免抽象类被滥用;

1.9.JDK16新特性(2021年3月)
1、ZGC性能优化
2、instanceof模式匹配
3、record的引入
JDK16相当于是将JDK14、JDK15的一些特性进行了正式引入。

1.9.JDK17新特性(2021年9月)(LTS版本)
1、正式引入密封类sealed class,限制抽象类的实现;
2、统一日志异步刷新,先将日志写入缓存,然后再异步刷新;
虽然JDK17也是一个LTS版本,但是并没有像JDK8和JDK11一样引入比较突出的特性,主要是对前几个版本的整合和完善。

标签:各个,JDK,G1,特性,API,GC,版本,引入,线程
From: https://www.cnblogs.com/CV-master/p/18072861

相关文章

  • java毕业设计线上水果店系统app(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在现代社会,随着生活节奏的加快和健康饮食观念的普及,人们对于水果的需求日益增长。传统的水果购买方式通常需要在实体店铺中进行,这不仅耗费时间,而且在种类......
  • java毕业设计线上书城网站(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的不断发展,人们获取信息和知识的方式也在逐渐改变。传统的书店购书方式已经不能满足现代人快节奏的生活需求。线上书城网站的出现,为用户提......
  • Linux(Ubuntu)下安装OpenJDK
      aptinstalldefault-jre 是一个在基于Debian的Linux发行版(如Ubuntu)上使用的命令,用于安装默认的Java运行时环境(JRE)。这里的 apt  是包管理工具,用于安装、更新和删除软件包。 install  是 apt  的一个子命令,用于安装软件包。default-jre 是要安装的软件包的名称,......
  • ROS——其他ROS版本安装
    1.2.6资料:其他ROS版本安装我们的教程采用的是ROS的最新版本noetic,不过noetic较之于之前的ROS版本变动较大且部分功能包还未更新,因此如果有需要(比如到后期实践阶段,由于部分重要的功能包还未更新,需要ROS降级),也会安装之前版本的ROS,在此,建议选用的版本是melodic或kinetic。接......
  • .Net接口版本管理与OpenApi
    前言作为开发人员,我们经常向应用程序添加新功能并修改当前的Api。版本控制使我们能够安全地添加新功能而不会造成中断性变更。一个良好的Api版本控制策略可以清晰地传达所做的更改,并允许使用现有RESTApi的客户端在准备好时才迁移或更新他们的应用程序到最新版本。哪些行为......
  • 278. 第一个错误的版本c
    //TheAPIisBadVersionisdefinedforyou.//boolisBadVersion(intversion);intfirstBadVersion(intn){inthead=1,tail=n;if(isBadVersion(head))return1;while(head<=tail){intmid=head+(tail-head)/2;if(isBadVersion(......
  • 安卓发展历程和主要版本的简要介绍
    人不走空                                          ......
  • Linux内核编译(版本6.0以及版本v0.01)并用qemu驱动
    系统环境:ubuntu-22.04.1-desktop-amd64目标平台:x86i386内核版本:linux-6.0.1linux-0.0.1环境配置修改root密码sudopasswd修改软件源(非必要)vmtools安装(实现win-linux软件互传)安装一些必须的软件:sudoaptinstallbuild-essentialopenssh-servervimnet-toolsgc......
  • java毕业设计小众咖啡店推荐平台的设计与实现(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景在当今社会,咖啡已经成为许多人日常生活中不可或缺的一部分。随着人们生活水平的提高和消费观念的转变,越来越多的人开始追求个性化和高品质的咖啡体验。小......
  • java毕业设计线上教学平台(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景随着互联网技术的迅猛发展,线上教育已经成为了现代教学体系中不可或缺的一部分。尤其是在全球性的公共卫生事件影响下,线上教学平台显示出了其独特的优势和......