什么是 JDK? 如何选择 JDK ?

1. 什么是 JDK?

JDK 的全称是 Java Development Kit , 翻译过来就是 Java 开发包.

那么什么是开发包呢? 开发包包含了编译, 运行一段代码的全部工具.

当我们写出一个代码文件时, 这个代码本质上只是个指令的本文, 并不能让机器直接执行, 当我们需要执行我们所写的代码时, 就需要用到开发工具来翻译(编程工作中我们称之为编译)我们缩写的代码了, 开发工具同时会判断我们写的代码有没有问题, 如果有问题还会报错, 让我们解决了这些问题再去编译我们写的代码,把代码转换成电脑等设备所能理解的指令, 然后电脑等设备才能理解并按照我们的意图去执行这些指令.

因此 JDK 就是编程语言和机器语言之间的桥梁.

那么我们我们能否直接编写机器语言去执行呢? 当然可以, 只是写这个东西难度过大, 不够抽象且维护起来也异常麻烦, 所以才选择编程语言这样的抽象语言来提高生产效率.

2. 如何选择 JDK 的发行版

发行版是什么?

首先 Java 是一种开源实现, 其实现有其自身的开源许可, 虽然版权归Oracle所有, 但 Oracle 并不主宰一切. 因此, 不同的公司,厂商可以参照标准发布自己的 JDK 实现. 而发行版就是不同公司, 厂商发布的JDK实现.

以下是一些常见的 JDK 发行版与特点.

  • OracleJDK

    官方JDK, 自 OracleJDK 11 对于商用开始收费, Oracle JDK 8 2019年停止支持

    特点: 商用收费, 全面, 有自己特定的模块, 稳定, 性能好

    网址: https://www.oracle.com/java/technologies/javase-downloads.html

  • OpenJDK

    官方开源版本, 与 OracleJDK 差距已经微乎其微, OpenJDK 不提供安装包,只有以压缩包形式发行的 JDK, 在不需要 Oracle 商业支持的情况下可以选择

    特点: 开源, 免费,版本更新跟随Oracle, 但只提供zip, 需要自己配置运行环境

    网址: http://openjdk.java.net/

  • AdoptOpenJDK

    是 Java 社区发起的面向所有 Java 开发者的开源和免费 OpenJDK Build, 初衷是解决 OpenJDK 非最新版本不提供长期支持(LTS)问题, 其次为开发者们提供一个免费的 JDK Build. Oracle 最近几年把原先的 Oracle JDK 商业功能开源之后, 目前 Adopt OpenJDK 和 Oracle JDK 几乎没有太大差异了. 于2020年加入Eclipse基金会.

    特点: 开源, 免费, 提供 hotspot 和 openj9 两种 jvm, 为主要版本提供长期支持, 由IBM提供 OpenJ9 支持

    网址: https://adoptopenjdk.net/

  • Zulu

    Azul 提供免费的开源 JDK 构建, Zing 是他的商用版大哥

    特点: 开源, 免费, 最广的平台支持, 支持  Arm, SPARC, PowerPC 以及 MIPS(龙芯可以一战), 支持最全的 Java 版本, 易于从 OracleJDK 迁移

    网址: https://www.azul.com/downloads/zulu-community/?package=jdk

  • Red Hat OpenJDK

    知名Linux发行版厂商, RedHat 旗下的 JDK 实现

    特点: 免费, 开源, 跨平台, 知名厂商支持, 发布频率高, 计划支持周期长

    网址: https://developers.redhat.com/products/openjdk/overview

  • Liberica JDK

    BellSoft 发行的JDK发行版, 非常受欢迎

    特点: 免费, 100%开源, 版本全面, 平台支持较广, 安装方便, 支持 apt, yum 等方式安装, 提供 docker 镜像支持, 国内下载速度快, 完整版自带JavaFX

    网址: https://bell-sw.com/

  • 阿里巴巴 龙井

    阿里巴巴的 JDK 实现, 主要针对 Java 8 实现

    知道有这么个实现就好, 谨慎选择用于开发, 毕竟官方已经开到 Java 11, Java 17 都快发布了

    网址: https://github.com/alibaba/dragonwell8

 

3. 如何选择 JDK 的版本

如果要尝鲜, 没有技术包袱, 就使用可以选择当下最新版的 Java 16

如果有技术包袱, 则应当选择当前工作应用的技术选型确定的JDK版本, 比如当前工作的服务稳定运行在Java 8下, 那么应当选择与其一致的版本. 当然根据 JDK 的支持时间, 还可以适当考虑将代码迁移到新版本上, 以避免因为缺少必要的支持而存在潜在的风险.

除此以外, 需要获得长期支持的, 则可以选择 LTS 版本, 目前常规的LTS是..

Java 8, Java 11 以及2021年9月发布的 Java 17 ...


以上就是 《什么是 JDK? 如何选择 JDK ? 》全文了.

至于如何安装 Java 开发环境, 请点击左侧链接查看.