当前位置: 首页 > news >正文

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)版本,这些版本会获得更长时间的更新和支持。

相关文章:

  • Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
  • LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现
  • Unity中的MVC框架
  • C++ lambda表达式的作用和代码示例
  • autodl服务器中YOLOx训练自己数据集
  • 人脸识别系统之动态人脸识别
  • vscode 好用的插件
  • 程序员坐牢了,会被安排去写代码吗?
  • Reddisson的常用的yml配置选项
  • 百度云下载不限速方式集合
  • C#WPF数字大屏项目实战01--开发环境与项目创建
  • 用旧安卓手机当 linux 开发机
  • 你每天都在用的APP,原来都是Python写的!
  • 【前端Vue3】——JQuery知识点总结(超详细)
  • 【Node】node的Events模块(事件模块)的介绍和使用
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android框架之Volley
  • canvas绘制圆角头像
  • C学习-枚举(九)
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • gulp 教程
  • IDEA 插件开发入门教程
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 奇技淫巧
  • JavaScript实现分页效果
  • JavaScript学习总结——原型
  • JS+CSS实现数字滚动
  • Linux后台研发超实用命令总结
  • socket.io+express实现聊天室的思考(三)
  • SpingCloudBus整合RabbitMQ
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • SpringBoot 实战 (三) | 配置文件详解
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue.js-Day01
  • 阿里云购买磁盘后挂载
  • 欢迎参加第二届中国游戏开发者大会
  • 解析 Webpack中import、require、按需加载的执行过程
  • 解析带emoji和链接的聊天系统消息
  • 警报:线上事故之CountDownLatch的威力
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 使用 QuickBI 搭建酷炫可视化分析
  • 问题之ssh中Host key verification failed的解决
  • 一些css基础学习笔记
  • 怎么把视频里的音乐提取出来
  • 正则与JS中的正则
  • mysql面试题分组并合并列
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # linux从入门到精通(三)
  • #git 撤消对文件的更改
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (11)(2.1.2) DShot ESCs(四)
  • (2)leetcode 234.回文链表 141.环形链表