Java18新特性有哪些

Java 18 于 2022 年 3 月 22 日正式发布,它带来了一些新特性和改进,主要包括以下几点:

  1. JEP 400: UTF-8 by Default123:JDK 将 UTF-8 设置为默认字符集,这使得依赖于默认字符集的 API 在所有实现、操作系统、区域设置和配置中保持一致。

  2. JEP 408: Simple Web Server123:引入了一个简单的 Web 服务器,通过命令行工具 jwebserver 可以启动一个只提供静态文件的最小网络服务器,主要用于原型设计、临时编码和测试目的。

  3. JEP 413: Code Snippets in Java API Documentation123:为 JavaDoc 的 Standard Doclet 引入了 @snippet 标签,简化了在 API 文档中嵌入示例源代码的难度。

  4. JEP 416: Reimplement Core Reflection with Method Handles1:使用方法句柄重新实现反射核心,以提高性能和安全性。

  5. JEP 417: Vector API1:向量 API 是第三次孵化,旨在提供一种更高效的处理 SIMD 指令的方式。

  6. JEP 418: Internet-Address Resolution SPI1:互联网地址解析 SPI,允许自定义 IP 地址解析逻辑。

  7. JEP 419: Foreign Function & Memory API (Second Incubator)1:外部函数和内存 API 是第二次孵化,用于安全地调用本地代码和操作内存。

  8. JEP 420: Pattern Matching for switch (Second Preview)1:switch 模式匹配的第二次预览,进一步增强了 switch 语句的表达能力。

  9. JEP 421: Deprecate Finalization for Removal1:计划废弃 finalization,因为其不可靠且难以预测。

这些特性旨在提高开发效率、性能和安全性,同时为 Java 语言的未来发展奠定基础

历史版本

Java 语言自诞生以来,经历了多个版本的迭代更新,以下是一些主要历史版本的概览:

1. JDK 1.0:1996年发布,Java语言的第一个开发工具包。
2. JDK 1.1:1997年发布,引入了内部类、反射等特性。
3. J2SE 1.2:1998年发布,引入了JIT编译器和JavaBeans等。
4. J2SE 1.3:2000年发布,增加了对XML的支持。
5. J2SE 1.4:2002年发布,引入了断言、正则表达式等特性。
6. Java SE 5.0 (1.5.0):2004年发布,也被称为Tiger,引入了泛型、枚举、注解等。
7. Java SE 6 (1.6.0):2006年发布,也被称为Mustang,引入了脚本引擎、编译时注解处理等。
8. Java SE 7 (1.7.0):2011年发布,也被称为Dolphin,引入了switch字符串支持、try-with-resources等。
9. Java SE 8 (1.8.0):2014年发布,引入了Lambda表达式、Stream API等。
10. Java SE 9:2017年发布,引入了模块系统、改进的JVM等。
11. Java SE 10:2018年发布,引入了局部变量类型推断等。
12. Java SE 11:2018年发布,也被称为长期支持(LTS)版本,引入了新的HTTP客户端等。
13. Java SE 12 至 17:这些版本继续引入了新的语言特性和API改进。

值得注意的是,随着Java的发展,命名约定也发生了变化。在Java SE 9之后,版本命名开始采用年份加版本号的形式,如Java 12、Java 13等。此外,从Java 11开始,Oracle JDK提供了长期支持(LTS)版本,这些版本会获得更长时间的更新和支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加入不正确的位置编码会破坏掉原本的信息吗?

会 位置编码的作用 在Transformer中,位置编码的主要作用是让模型感知输入序列中各个词的位置。因为Transformer完全依赖自注意力机制,它本身并没有序列信息,位置编码的引入就是为了补充这一点。 加法操作的合理性 位置编码通过加法操作与…

震惊!没想到这个国产数据库可以白嫖!

最近很多网友私信我,问我们MogDB是怎么售卖的,你们的具体策略是怎么样的? 其实这个话题我在一些微信群都已经讲过, 这里干脆来一篇公众号文章,详细说一说! MogDB是什么? MogDB是 EnMotech openG…

Python群发邮件的功能如何实现?怎么使用?

Python群发邮件需要哪些库支持?如何使用Python发信? 对于Python开发者来说,实现群发邮件功能是一项非常有用的技能,无论是用于营销、通知还是其他目的。AokSend将介绍如何使用Python来实现群发邮件的功能,让你轻松管理…

yolov8魔改之Ghost引入

Ghost层是在CVPR 2020上由华为诺亚方舟实验室提出的7。它是一种新型的端侧神经网络架构,称为GhostNet。Ghost层的核心思想是通过廉价操作生成更多的特征图,从而在保持精度的同时减少计算量和参数量。 技术上的提升主要体现在以下几个方面: 参数和计算量的减少:Ghost模块使…

AAA认证,授权,计费

AAA 认证,授权,计费 AAA常见的网络架构 用户,NAS,AAA服务器 NAS负责集中收集和管理用户的访问请求。 在NAS上会创建多个域来管理用户,不同的域可以关联不同的AAA方案。 当收到用户接入网络的请求时,N…

【优选算法】字符串 {相关编程题解析}

一、相关编程题 1.1 最长公共前缀 题目链接 14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; 题目描述 算法原理 编写代码 // 解法一&#xff1a;两两比较 class Solution { public:string longestCommonPrefix(vector<string>& strs) {int k strs[0…

当边缘计算用在定位设备

什么是边缘计算&#xff1f; 边缘计算是个比较高大上的概念&#xff0c;在这里就不提众多官方与非官方的定义了&#xff0c;只说说自己的理解。 边缘计算就是在最靠近物理设备的使用现场&#xff0c;利用有限的硬件资源&#xff0c;完成设备层数据采集、协议转换、数据上传、…

推荐系统学习 二

双塔模型的结构 用户的特征&#xff0c;我们知道用户ID还能从用户填写的资料和用户行为中获取很多特征&#xff0c;包括离散特征和连续特征。所有这些特征不能直接输入神经网络&#xff0c;而是要先做一些处理&#xff0c;比如用embedding层把用户ID映射到一个向量 跟之前我们…

tensorFlow内部使用了 opencv的算法吗?( 回答由百度 AI 给出 )

百度 AI 回答&#xff1a;TensorFlow本身并不直接使用OpenCV的算法。TensorFlow是一个开源的机器学习框架&#xff0c;主要用于构建和训练深度学习模型&#xff0c;而OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉库&#xff0c;包…

MongoDB~基础知识记录

为何要学Mongodb 工作以来&#xff0c;使用最多、了解最多的是MySQL。但技术的发展一定是依据痛点来的&#xff0c;就比如我遇到的痛点&#xff0c;一个业务、一个平台能力、存储的一个对象&#xff0c;随着产品和运营的需求&#xff0c;不断的进行变更&#xff0c;每一次的变…

JVM学习-监控工具(三)

jconsole 从Java5开始&#xff0c;在JDK中自带的java监控和管理控制台用于对JVM中内存、线程、和类等的监控&#xff0c;是一个基本JMX(java management extendsions)的GUI性能监控工具 三种连接方式 Local&#xff1a;使用JConsole连接是一个正在本地系统运行的JVM&#xf…

mfc110u.dll丢失的解决方法,分享七个有效方法

mfc110u.dll是一个动态链接库文件&#xff0c;属于Microsoft Foundation Classes (MFC) 的一部分。它是Microsoft Visual Studio 2012编程环境中用于C应用程序开发的一个组件。 1.2 功能与作用 mfc110u.dll文件提供了一系列的预构建类和函数&#xff0c;这些类和函数使得开发…

一键式AI智能知识库-谈如何打造人性化的LLM RAG知识库的重要性

RAG系统简介 在现代的LLM RAG&#xff08;Retrieval-Augmented Generation&#xff09;系统中&#xff0c;数据流的设计至关重要。让我们通过一个具体的例子来详细描述一个标准RAG系统的数据流。 首先&#xff0c;用户可以通过多种应用入口访问系统&#xff0c;包括PC应用、微…

Codestral-22B-v0.1-4bit部署

Codestral-22B-v0.1-4bit 模型文件地址 mistral-inference 仓库文件地址 一、Codestral-22B-v0.1环境安装 1、硬件配置 2、配置环境 建议最好自己新建一个conda环境 conda create -n codestral python3.10 -y cond…

Golang Silce 切片哪些事情

silce 本质上为用户提供了动态数组的功能&#xff0c;类型声明为 var sliceName []datatype ,datatype为类型&#xff0c; 1 2 3a : [1,2,3] a nil fmt.Println(a, len(a), cap(a) // [] 0 0nil slice 和普通 slice一样可以使用 cap len 内置函数&#xff0c;以及被 for rang…

无人机、机器人10公里WiFi远距离图传模块,实时高清视频传输,飞睿CV5200模组方案,支持mesh自组网模块

在快速发展的物联网时代&#xff0c;远距离无线通信技术已成为连接各种智能设备的关键。无人机、安防监控、机器人等领域对数据传输的距离和速度要求越来越高。 公里级远距离WiFi模组方案可以通过多种技术和策略的结合来实现无人机和机器人之间的高效通信传输。 飞睿智能CV52…

如何看待时间序列与机器学习?

GPT-4o 时间序列与机器学习的关联在于&#xff0c;时间序列数据是一种重要的结构化数据形式&#xff0c;而机器学习则是一种强大的工具&#xff0c;用于从数据中提取有用的模式和信息。在很多实际应用中&#xff0c;时间序列与机器学习可以结合起来&#xff0c;发挥重要作用。…

npm install报ENOENT: no such file or directory, open问题

没有进行npm的初始化操作导致的 npm init -y 再 npm install npm install

vue 按钮权限

想要不同的用户拥有不同的功能权限 使用v-has"search:mdtj:add&#xff08;v-has中的字符自己编辑&#xff0c;一般是目录页面具体按钮功能&#xff09; 例如&#xff1a; <a-button click"handleAdd" type"primary" icon"plus" v-ha…

Linux编程--网络层和

1.IP协议 1.1 协议头的格式 4位版本&#xff1a;指定IP协议的版本&#xff0c;IPV4就是4。 4位首部长度&#xff1a;*4 报头的长度 [0-60] 8位服务类型&#xff1a;3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量…