25岁的Java2020年是Java诞生的第25个年头。在过去的几年里,Java为用户提供了二十多年的创新,这些创新是由过去的增强功能驱动的,例如Java5中的泛型、Java8中的Lambda和Java9中的模块,它们提高了Java的性能、稳定性和安全性。Java平台。尽管Java已有25年历史,但它仍在不断创新。9月15日,Oracle宣布JDK15正式发布。这是Java迭代周期缩短到六个月后的第六次发布。随着迭代速度的加快,Java设计、开发和测试人员可以更轻松地面对迭代中的变化。在六个月的节奏中,JDK的新生产就绪版本的交付率显着提高。而不是每隔几年在大型主要版本中发布数千个修复程序和一百个左右的JDK增强建议(JEP)。JavaJEP的数量更容易应对迭代的加速。JDKEnhancementProposals:简称JEP,JDK增强提案,是对JDK的特性添加和改进提案。中国企业做出了突出贡献。此外,OpenJDK社区也为JDK15的诞生做出了重要贡献。除了我们熟悉的科技巨头,还有一些小型组织和独立开发者。参与JDK15ISSUES修复的组织Oracle仍然是JDK开发的主力军,完成了79.68%的工作量,其次是开源巨头RedHat。国内贡献最大的其实是腾讯,被甲骨文点名感谢。阿里巴巴和华为也做出了不可磨灭的贡献。Java有中国科技力量的贡献,可以大大提升中国IT的硬实力。Java15Java15为用户提供了十四个主要的增强/更改,包括一个孵化器模块、三个预览功能、两个弃用功能和两个已删除功能。EdDSA数字签名算法新增Edwards-Curve数字签名算法(EdDSA)实现加密签名。支持许多其他加密库,例如OpenSSL和BoringSSL。与JDK中现有的签名方案相比,EdDSA提高了安全性和性能。这是一项新功能。隐藏类此功能有助于需要在运行时生成类的框架。框架生成的类需要动态扩展它们的行为,但又想限制对这些类的访问。隐藏类很有用,因为它们只能通过反射访问,而不能从普通字节码访问。此外,隐藏类可以独立于其他类加载,从而减少框架的内存占用。这是一项新功能。重新实现DatagramSocketAPI重新实现旧版本的DatagramSocketAPI,一个更简单、更现代的实现来替代java.net.DatagramSocket和java.net.MulticastSocketAPI的基本实现,提高了JDK的可维护性和稳定性。ZGC功能正ZGC已被JEP333集成到JDK11中,其目标是通过减少GC停顿时间来提高性能。借助JEP377,ZGC从预览功能转变为生产功能。JEP355在2019年提出了文本块功能到文本块。文本块是多行字符串文字,它避免了大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式.在JEP378中,文本块已成为Java语言的永久特性。Shenandoah垃圾收集算法将Shenandoah垃圾收集从实验功能转换为生产功能。这是一种从JDK12引入的收集算法,它通过与运行的Java线程同时进行疏散工作来减少GC暂停时间。Shenandoah的暂停时间与堆大小无关,无论堆栈是200MB还是200GB,暂停时间都是一致的。密封类(预览版)用于限制超类的使用。密封类和接口限制了可能继承或实现它们的其他类或接口。这是一个新的预览功能。之前Java中的instanceof自动匹配方式(预览版)://先判断类型if(objinstanceofString){//然后转换Strings=(String)obj;//然后就可以使用了}在自动匹配方式中:if(objinstanceofStrings){//如果类型匹配直接使用}else{//如果类型不匹配则不能直接使用}这是该功能的第二次预览,我们已经在J??ava14中第一次预览了该功能。RecordsClass(预览版)也是第二个预览版。我已经详细介绍了这个功能。您可以在Java14的新功能JEP359记录一文中了解更多信息。外部内存访问API(预览版)的目的是引入一个API以允许Java程序安全有效地访问Java堆之外的外部内存。这也是Java14的预览功能。还有其他一些已弃用和弃用的功能,例如移除NashornJavaScript引擎,以及移除Solaris和SPARC端口。并标记了一些已弃用的功能。
