Java和JDK的关系;以及JDK版本

这篇具有很好参考价值的文章主要介绍了Java和JDK的关系;以及JDK版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Java和JDK的关系:

Java是一门面向对象的编程语言,而JDK(Java Development Kit)则是开发Java应用程序所需的软件开发工具包。Java语言本身与JDK之间存在紧密的依赖关系,具体如下:

  1. Java语言:定义了语法、语义、数据类型、类库规范等编程规则,是编写Java程序的基础。

  2. JDK:包含了编译器(javac)、解释器(java)、调试器(jdb)、文档生成工具(javadoc)等开发工具,以及Java运行环境(JRE)和Java基础类库(Java API)。JRE中包含了Java虚拟机(JVM)和Java标准类库,是运行Java程序所必需的环境。因此,可以说JDK是Java开发者用来编译、运行、调试和维护Java程序的完整开发工具集。

总结来说,Java语言是抽象的编程规范,而JDK是实现这一语言的具体工具集合。要编写和运行Java程序,必须安装相应的JDK版本。

二、目前JDK的版本及其发布时间、主要特性变化:

以下是Java(JDK)近年来的主要版本及其发布日期,以及每个版本中引入的一些关键特性和改进:

JDK 8 (LTS)

  • 发布日期:2014年3月18日
  • 主要特性:
    • Lambda表达式:极大地简化了函数式编程风格,增强了代码的简洁性和可读性。
    • Stream API:支持对集合数据流进行高效、声明式的处理。
    • 接口的默认方法和静态方法:允许在接口中定义默认实现,增强接口的灵活性和扩展性。
    • 新的日期/时间API(java.time包):替代旧的Date/Calendar类,提供更加丰富和易于使用的日期、时间、时区处理功能。
    • ** Nashorn JavaScript引擎**:内置高性能JavaScript执行环境。
    • 并发改进:如StampedLock,增强并发控制能力。
  • 注意“JDK 1.8”这种说法实际上是对“JDK 8”的一种习惯性称呼。这里的“1.8”并非表示JDK的版本号是1.8,而是指JDK的第8个主要版本。在Java的发展历史中,早期版本的命名方式确实包含了小数点,如JDK 1.5、JDK 1.6等。但从JDK 7开始,官方的命名方式去掉了小数点,直接采用“JDK 7”、“JDK 8”这样的形式。尽管官方已经采用了新的命名方式,但由于习惯和记忆的原因,很多人仍然沿用旧的命名方式,将“JDK 8”称为“JDK 1.8”。这种称呼在开发者社区中相当普遍,尤其是在讨论早期JDK版本与后续版本之间的区别和兼容性时。因此,当你听到“JDK 1.8”时,你应该明白它实际上指的是“JDK 8”。这是一个约定俗成的称呼,尽管它并不完全符合官方的命名规范。同时,了解这一点也有助于你更好地理解和参与Java开发社区的讨论。

JDK 9 (非LTS)

  • 发布日期:2017年9月21日
  • 主要特性:
    • 模块系统(Project Jigsaw):引入模块化架构,提升了大型应用的组织和部署能力。
    • JShell:交互式Java REPL(Read-Eval-Print Loop),方便快速原型开发和学习。
    • HTTP/2客户端:提供新的API支持HTTP/2协议。
    • 进程API:允许Java程序控制和管理操作系统进程。
    • 改进的Javadoc:支持HTML5,增强文档生成工具的功能和样式。

JDK 10 (非LTS)

  • 发布日期:2018年3月20日
  • 主要特性:
    • 局部变量类型推断(var关键字):简化变量声明,特别是在使用Lambda表达式和流时。
    • 垃圾回收器接口:为GC实现提供了统一的接口,便于定制和替换。
    • 根证书更新机制:通过JDK自动更新根证书存储,增强安全性。

JDK 11 (LTS)

  • 发布日期:2018年9月25日
  • 主要特性:
    • ZGC:低延迟垃圾收集器:实验性引入,提供接近实时的暂停时间。
    • Epsilon GC:无操作垃圾收集器:用于性能基准测试和特殊场景。
    • HTTP客户端标准化:将JDK 9的HTTP/2客户端升级为标准API。
    • Flight Recorder和Mission Control:用于监控、诊断和分析JVM和Java应用程序的工具,正式成为JDK一部分。
    • 移除Java EE和CORBA模块:精简JDK,将这些模块移至独立的项目。

JDK 12 - 1.png (非LTS)

  • 发布日期:2019年3月19日 - 2020年3月17日
  • 主要特性:
    • Switch表达式(预览):增强switch语句,使其能返回值并支持模式匹配。
    • Microbenchmark Suite:内置微基准测试框架,便于性能评估。
    • Shenandoah GC:实验性引入,提供低停顿时间的并发垃圾收集器。

JDK 13 - 1.png (非LTS)

  • 发布日期:2019年9月17日 - 2020年9月15日
  • 主要特性:
    • 文本块(Text Blocks):简化多行字符串的创建和处理。
    • Switch表达式(正式版):在JDK 12的基础上完善并正式启用。

JDK 14 - 1.png (非LTS)

  • 发布日期:2020年3月17日 - 2021年3月16日
  • 主要特性:
    • Records:简化数据类的定义,提供简洁的语法创建不可变对象。
    • Pattern Matching for instanceof:增强instanceof运算符,支持类型检查和解构赋值。

JDK 15 - 1.png (非LTS)

  • 发布日期:2020年9月15日 - 2021年9月14日
  • 主要特性:
    • 隐藏类(Hidden Classes):允许动态生成仅供内部使用的类,提高性能和内存效率。
    • ZGC:并发线程堆栈处理:增强ZGC对线程堆栈的并发处理能力。

JDK 16 (LTS)

  • 发布日期:2021年3月16日
  • 主要特性:
    • Records:正式启用,作为Java语言的新特性。
    • Packaging Tool (jpackage):简化Java应用程序打包为本地平台可安装格式。

JDK 17 (LTS)

  • 发布日期:2021年9月14日
  • 主要特性:
    • Sealed Classes:限制类的子类化,增强API设计的灵活性和安全性。
    • Pattern Matching for switch:增强switch语句,支持模式匹配。

JDK 18 (非LTS)

  • 发布日期:2022年3月22日
  • 主要特性:
    • Virtual Threads (Project Loom):轻量级线程( fibers),简化并发编程模型。
    • Structured Concurrency:通过try-with-resources风格的API支持结构化并发控制。

JDK 19 (非LTS)

  • 发布日期:2022年9月20日
  • 主要特性:
    • Foreign Function & Memory API (Preview):支持直接调用C/C++代码和操作外部内存。

请注意,上述列表中,LTS(Long-Term Support)版本通常提供更长时间的维护和支持,适合用于生产环境。非LTS版本则通常包含更多实验性或预览特性,适合开发人员探索和试用新技术。同时,每个版本的具体发布日期和特性可能随着Oracle的计划有所变动,建议查阅Oracle官方发布的最新信息以获取最准确的版本详情。文章来源地址https://www.toymoban.com/news/detail-861468.html

到了这里,关于Java和JDK的关系;以及JDK版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何实现Java JDK的多版本共存&&一键切换版本

    学习Java最一开始就是需要做环境配置啦,安装JDK是必不可少的。大家都知道JDK是Java开发者工具包,那么一般来说要选择什么样的版本来安装呢?可以安装多个JDK吗?是否可以我随时想切换哪个JDK就使用哪个呢? 下面我会主要说明如何实现Java JDK的多版本共存。 一般来说,企

    2024年04月17日
    浏览(1)
  • 【面试题】JDK(工具包)、JRE(运行环境和基础库)、JVM(java虚拟机)之间的关系?

    【面试题】JDK、JRE、JVM之间的关系? JDK (Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。 JRE (Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境

    2024年02月11日
    浏览(1)
  • Android Studio:如何修改JDK版本和获知使用的Java版本

    JDK的含义: JDK代表Java Development Kit(Java开发工具包),它是一种用于开发和构建Java应用程序的软件包。JDK包含了开发Java应用程序所需的工具、编译器(javac)、运行时环境(JRE)以及其他辅助工具和库。 在Java开发领域中,JDK版本和Java版本通常是相互对应的,例如:JDK 8代表

    2024年02月09日
    浏览(2)
  • Android Studio如何修改JDK版本和获知使用的Java版本

    什么是JDK和Java版本? 首先,让我们简单了解一下什么是JDK和Java版本。JDK(Java Development Kit)是Java开发工具包的缩写,它包含了Java的运行环境(JRE)和开发工具,用于开发Java应用程序。而Java版本是指Java编程语言的不同版本,每个版本都会有一些新的特性和改进。 Android St

    2024年03月15日
    浏览(2)
  • Java_JDK8到JDK21各版本发行时间及重要特性

    2022年Spring6和SpringBoot3相继推出,在此之前,Java社区一直是\\\"新版任你发,我用Java 8\\\",不管新版本怎么出,很少有人愿意升级。 这一次,Spring 直接来了个大招,SpringBoot3和Spring6的最低依赖就是JDK17!跨过 JDK 8-16,直接升级到 JDK 17。那么为什么是 JDK 17呢? 为什么是JDK17这么多新

    2024年01月19日
    浏览(2)
  • java,jdk 分不清,是否免费,怎么选择合适的版本

    Oracle JDK 和 Open JDK Oracle JDK Open JDK 来源 Oracle团队维护 Oracle和Open Java社区 授权协议 Java 17及更高版本 Oracle Java SE 许可证Java16及更低版本甲骨文免费条款和条件 (NFTC) 许可协议 (oracle.com) GPL v2许可证 关系 由Open JDK构建,增加了少许内容 发行周期 6个月,每两年一个LTS 6个月 是否收费

    2024年02月07日
    浏览(1)
  • Java升级JDK17(更高版本同理),修改maven

    记住三个网址就行:下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的:这个是开源的(推荐这个!) Red Hat build of OpenJDK Download | Red Hat Developer 找到想要的版本下载即可 注意:JDK9的时候,

    2024年02月11日
    浏览(2)
  • jdk版本冲突,java.lang.UnsupportedClassVersionError: JVMCFRE003

    主要是编辑器所用的jdk版本和项目用的不一致导致的,虽然编译通过了,但是运行是会报错 选好后点击Apply点击ok,然后重新编译一遍项目就可以了

    2024年04月26日
    浏览(1)
  • 如何自由切换java-jdk版本?详细教程来了

    这个教程开始之前先把原来的java卸载掉 从这里卸载就可以了,卸载完成后就开始正式操作了 官网下载jdk不同版本,最好是压缩包版本的,如果是安装版的话稍微有点麻烦,解压到一个目录下,就像这样: 设置系统变量: win10 要注意一下,path变量值要分开,就像这样: 配置

    2024年02月04日
    浏览(1)
  • IDEA,JDK是1.8,但Java版本只有21和17

    2023年11月26日,想创建一个springboot的项目,本地安装的是1.8,但是在使用Spring Initializr创建项目时,发现版本只有17和21。 在选择17版本的时候,会报错,而选择21版本时,可以继续创建 进入Springboot官网查看情况,发现在2023年11月24日,3.0以下的版本不再支持了。 第一个方案,

    2024年02月05日
    浏览(1)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包