Java 1.0 到 Java 17历程

Java 自 1995 年发布以来,经历了多个版本的更新,每个版本都引入了新的特性和改进。以下是从 Java 1.0 到 Java 17(截至我所掌握的最新信息)的主要新特性概览:

Java 1.0 (1996)

  • 初始版本,包含了Java的基础特性。

Java 1.1 (1997)

  • 内部类
  • JavaBeans
  • JDBC
  • RMI

Java 1.2 (1998)

  • Swing GUI组件库
  • Java Plug-in
  • Collections Framework
  • JIT 编译器

Java 1.3 (2000)

  • HotSpot JVM
  • RMI/IIOP 组合

Java 1.4 (2002)

  • 正则表达式
  • 异常链
  • NIO(新输入/输出)
  • Java Web Start
  • Logging API

Java 5 (2004)

  • 泛型
  • 注解
  • 自动装箱/拆箱
  • 枚举
  • 可变参数
  • foreach 循环

Java 6 (2006)

  • 改进的 Web 服务支持
  • JDBC 4.0
  • 更多的性能改进和bug修复

Java 7 (2011)

  • try-with-resources
  • 钻石操作符(类型推断)
  • NIO.2 文件系统 API
  • Fork/Join 框架
  • 动态语言支持(InvokeDynamic)

Java 8 (2014)

  • Lambda 表达式
  • Stream API
  • 新的日期时间 API
  • 接口中的默认方法和静态方法
  • Nashorn JavaScript 引擎

Java 9 (2017)

  • 模块系统(Project Jigsaw)
  • JShell(交互式Java REPL)
  • 更多的 API 改进和新特性

Java 10 (2018)

  • 局部变量类型推断(var)
  • Application Class-Data Sharing

Java 11 (2018)

  • HTTP Client API(标准化)
  • 新的垃圾收集器:ZGC 和 Epsilon
  • String、Files、Optional 类的新方法

Java 12 (2019)

  • Switch 表达式(预览)
  • Shenandoah 垃圾收集器
  • JVM 常量 API

Java 13 (2019)

  • Text Blocks(多行字符串)(预览)
  • Reimplement the Legacy Socket API

Java 14 (2020)

  • Pattern Matching for instanceof(预览)
  • Records(预览)
  • Helpful NullPointerExceptions
  • Switch 表达式(标准)

Java 15 (2020)

  • Sealed Classes(预览)
  • Text Blocks(标准)
  • ZGC 和 Shenandoah GC 成为生产特性
  • Hidden Classes

Java 16 (2021)

  • Pattern Matching for instanceof(第二轮预览)
  • Records(标准)
  • Sealed Classes(第二轮预览)
  • Vector API(孵化器)

Java 17 (2021)

  • 封闭类(正式特性)
  • Pattern Matching for instanceof(正式特性)
  • 新的垃圾收集器:G1 和 Parallel GC
  • 去除实验性 AOT 和 JIT 编译器

这是从 Java 1.0 到 Java 17 的主要特性的简要概述。每个版本都标志着Java语言和平台的重要发展步骤,引入了对开发人员和企业用户都很重要的新功能和改进。随着Java的不断发展,后续版本(如 Java 18 和更高版本)也引入了更多新特性。

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

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

相关文章

VSCode配置用户代码段以及常用快捷键汇总

一:前言 VSCode 是一款由微软开发的轻量级编辑器,可以安装插件和兼容多种语言。其本身已经是目前前端开发所使用的主流软件。那么在开发过程中,我们经常要写很多重复性的代码,比如当你去新建一个 .vue 页面的时候,往往…

在Ubuntu18.04安装适合jdk8的eclipse

直接在Ubuntu软件那里下载的eclipse不能用,下载后启动会报错:Eclipse An error has occurred. See the log file/home/hadoop/.eclipse/ org.eclipse.platform_3.8_155965261/ configuration/1700567835954.log 上网搜索方法,按教程说的修改e…

Deepmind开发音频模型Lyria 用于生成高品质音乐;创建亚马逊新产品评论摘要

🦉 AI新闻 🚀 Deepmind开发音频模型Lyria 用于生成高品质音乐 摘要:Deepmind推出名为Lyria的音频模型,可生成带有乐器和人声的高品质音乐。Lyria模型针对音乐生成的挑战,解决了音乐信息密度高、音乐序列中的连续性维…

redis的一些操作

文章目录 清空当前缓存和所有缓存配置内存大小,防止内存饱满设置内存淘汰策略键过期机制 清空当前缓存和所有缓存 Windows环境下使用命令行进行redis缓存清理 redis安装目录下输入cmdredis-cli -p 端口号flushdb 清除当前数据库缓存flushall 清除整个redis所有缓存…

【Linux】深入理解系统文件操作(1w字超详解)

1.系统下的文件操作: ❓是不是只有C\C有文件操作呢?💡Python、Java、PHP、go也有,他们的文件操作的方法是不一样的啊 1.1对于文件操作的思考: 我们之前就说过了:文件内容属性 针对文件的操作就变成了对…

阿里云云盘IOPS与IO吞吐

1、云盘IOPS 存储类别ESSD云盘SSD云盘性能级别PL3PL2PL1无 最大IOPS计算公式 (存储空间单位:GB) min{180050*存储空间, 1000000, 实例规格最大IOPS}min{180050*存储空间, 100000, 实例规格最大IOPS}min{180050*存储空间, 50000, 实例规格最大…

悄悄上线:CSS @starting-style 新规则

最近 Chrome 117,CSS 又悄悄推出了一个新的的规则,叫做starting-style。从名称上来看,表示定义初始样式。那么,具体是做什么的?有什么用?一起了解一下吧 一、快速了解 starting-style 通常做一个动画效果…

µC/OS-II---中断相关名词

中断相关名词 中断和中断服务程序进入临界区和禁用中断任务的临界区代码和ISR的临界区代码 中断和中断服务程序 中断是指处理器在执行程序的过程中,由硬件或软件触发的一种事件。当中断事件发生时,处理器会立即中断当前的执行流程,保存当前的…

【用unity实现100个游戏之16】Unity中程序化生成的2D地牢5(附项目源码,完结)

文章目录 最终效果前言生成墙壁优化方法一、使用rule tile方法二、使用代码生成墙壁补充最终效果后续参考源码完结最终效果 前言 本期是本项目最后一期,主要是进行墙壁的生成优化和补充一下剩下了的其他内容 生成墙壁优化 方法一、使用rule tile 我这里大概给个rule tile参…

ASM字节码操作类库(打开java语言世界通往字节码世界的大门) | 京东云技术团队

前言:授人以鱼不如授人以渔,应用asm的文章有很多,简单demo的也很多,那么ASM都具备哪些能力呢?如何去学习编写ASM代码呢?什么样的情景需要用到ASM呢?让我们带着这些问题阅读这篇文章吧。 这里由…

abap qm01创建质检通知单相关bapi:IQS4_CREATE_NOTIFICATION

网上查找关于创建质检通知单相关bapi时,基本都是显示BAPI_QUALNOT_CREATE该函数,经查看,该函数缺少QF01缺陷记录的参数,比如检验批,退货数量等字段,同时即使该函数成功执行,生成的通知单也是有问…

搜索记录及使用缓存的设计思路

目录 背景: 思路: 问题 实现 背景: 最近业务写到检索这块的内容,设计到搜索记录的增删操作。考虑到频繁写库操作所以使用缓存技术 redis 和 cacha。 思路: 查询:先查内存查缓存在查询数据库,查询数据库先更新内存…

电脑开机过程中,程序的启动的顺序是怎么样的?

电脑的启动过程涉及多个步骤,程序按照特定的顺序启动。这个过程通常如下: 电源开启: 当你按下电源按钮时,电源供应器(PSU)开始向电脑的各个组件供电。 自检加电(POST): 这是电脑启动过程的第一步。在这个阶段,基本输入输出系统(BIOS)或统一可扩展固件接口(UEFI)执行…

Ubuntu 搭建FTP服务

在Linux中使用的FTP是vsftp,Ubuntu中安装vsftp: apt install vsftpd 配置文件在/etc路径下,会出现两个配置文件: /etc/vsftpd.conf :主配置文件 /etc/ftpusers:指定那些用户不能访问FTP服务器,这里的用…

RunwayGen2上线全新控制功能「运动笔刷」

从8月份开始,我就在各种场合表达过,AI视频现在最痛苦的点,是控制性极差。Gen2的语义理解本来就差,还几乎没有任何可控性,只有那几个镜头控制,剩下全靠roll。但是你roll的,全是白花花的银子啊...…

每日一练:X加上100为完全平方数,再加上168仍然为完全平方数

题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 实现方式1 解题思路 设整数为x,根据题意建立方程:   (1) x 100 是一个完全平方数,即存在整数a满…

设计模式-15-Jdk源码中的设计模式

之前我们学习了一些设计模式,今天我们剖析Java JDK 源码中用到的几种常见的设计模式。 1-jdk之工厂模式 在前面讲到工厂模式的时候,大部分工厂类都是以Factory作为后缀来命名,并且工厂类主要负责创建对象这样一件事情。但在实际的项目开发中…

技术分享| gcc版本升级到5.2

一、介绍 GCC(GNU Compiler Collection)是一套广泛使用的开源编译器集合,用于编译多种编程语言,包括C、C、Objective-C、Fortran等。GCC 的不同版本提供了许多新功能、改进和修复,其中包括从 GCC 4.8.5 升级到 GCC 5.…

泛型边界的问题

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 我们花了两篇文章讲述了…

常见树种(贵州省):007青冈

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、青冈 …