JDK的版本有多少种,Java开发者应该选择哪一种?
先说结果,一般情况下,我们多数会选择OpenJDK或者AdoptOpenJDK的JDK实现,因为这是最精简最标准的版本,而且没有商业风险。另外,需要结合自己的使用场景,也可以选择以下JDK版本。

OracleJDK:
Oracle公司成立于1977年,是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。2009年就以7.4B$收购了Sun公司。2013年超越 IBM ,成为 继 Microsoft 后全球第二大软件公司。
警告:生产环境中OracleJDK的使用请注意法律风险!
链接: OracleJDK
https://www.oracle.com/java/technologies/javase-downloads.html

OpenJDK:
OpenJDK原是Sun Microsystems公司为Java平台构建的Java开发环境(JDK)的开源版本,完全自由,开放源码。 Sun Microsystems公司在2006年的JavaOne大会上称将对Java开放源代码,于2009年4月15日正式发布OpenJDK。 甲骨文在2010年收购Sun Microsystem之后接管了这个项目。
链接: OpenJDK
http://openjdk.java.net
http://jdk.java.net/archive/

RedHatOpenJDK:
RedHat开源扛把子红帽出品,值得信赖。仅有windows。Linux请从源里下载。仅更新最新维护版。
链接: RedHatOpenJDK
https://developers.redhat.com/products/openjdk/download

AdoptOpenJDK:
2017年开始采用OpenJDK.net,建立在多个平台上普遍缺乏一个开放的、可复制的OpenJDK源代码构建和测试系统。 adoptionopenjdk为Java生态系统提供了坚如磐石的OpenJDK二进制文件,还为任何平台上的OpenJDK构建者提供了作为代码的基础设施和构建场。
链接: AdoptOpenJDK
https://adoptopenjdk.net

Dragonwell:
作为OpenJDK的下游,alibaba Dragonwell是阿里巴巴内部OpenJDK定制版AJDK的开源版本,AJDK为在线电商、金融、物流做了结合业务场景的优化,运行在超大规模的,100,000+ 服务器的阿里巴巴数据中心。
链接: Dragonwell
https://github.com/alibaba/dragonwell8

GraalVM:
GraalVM是一个通用的虚拟机,用于运行以JavaScript、Pytho n、Ruby、R、JVM等语言编写的应用程序,如Java、Scala、Groovy、Kotlin 、Crojule和基于LLVM的语言,如C和C++。GraalVM消除了编程语言之间的隔离,并在共 享运行时启用互操作性。它可以独立运行,也可 以在OpenJDK、Node.js或Oracle数据库的上下文中运行。
链接: GraalVM
https://www.graalvm.org

ZuluJDK:
Azul Systems为需要为其面向网络的客 户(旅游、在线零售、游戏、SaaS)提供基于服务器的Java应 用程序的公司提供服务,满足实时业务系统(广告网络、资本市场、通信)的特定 延迟目标,确保对重要应用程序进行及时维护或安全更新,或者为嵌入式和物联网用例提 供基于Java的系统。
链接: ZuluJDK
https://www.azul.com/downloads/zulu-community/?&architecture=x86-64-bit&package=jdk#

Liberica:
Liberica是一个100% 开源Java实现。它是由BellSoft贡献的O penJDK构建的,经过了彻底的测试,并通过了OpenJDK许可下 提供的JCK。Standard为常规用途,full版本包含JavaFX,lite为精简的OpenJDK。文件体积Full > Standard > lite。
链接: Liberica
https://bell-sw.com/pages/downloads/#/java-14-current

SapMachine:
SAP SE是一家 德国跨国软件公司,它生产企业软件 来管理业务运营和客户关系。SAP总部位于德国巴登-符腾 堡的沃尔多夫,在180个国家设有区域办事处。SapMachine是OpenJDK 项目的下游版本。它用于为希望使用OpenJDK运行其应用程序的SAP客户和合作伙 伴构建和维护支持SAP的OpenJDK版本。SAP致力于确保Java平台的持续成功。
链接: SapMachine
https://sap.github.io/SapMachine

Corretto:
Amazon Corretto是一个免费的 、多平台的、面向生产的开放Java开发工具包(OpenJDK) 发行版。Corretto提供长期支持,包括性能增强和安全修复。亚马逊在数 个生产服务上运行Corretto,并且Corretto被证明与Java SE标准兼容。使用Corretto,您 可以在流行的操作系统(包括Linux、Windows和macOS)上开发和运行Java应用程序。
链接: Corretto
https://amazonaws-china.com/cn/corretto

文献参考:
https://www.cnblogs.com/shumtn/p/13389064.html
http://www.360doc.cn/article/72500911_948067256.html

JDK的版本有多少种,Java开发者应该选择哪一种?的更多相关文章

  1. Java 开发者不容错过的 12 种高效工具

    Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高效编程工具.所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用.正在使用或 ...

  2. Java获取文件Content-Type的四种方法

    HTTP Content-Type在线工具 有时候我们需要获取本地文件的Content-Type,已知 Jdk 自带了三种方式来获取文件类型. 另外还有第三方包 Magic 也提供了API.Magic ...

  3. Java/JDK各版本主要特性汇总

    目录 Java18(2022.3) Java17(2021.9)(LTS版本) Java16(2021.3) Java15(2020.9) Java14(2020.3) Java13(2019.9) ...

  4. JDK各个版本的新特性

    对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JD ...

  5. 从Java开发者的视角解释JavaScript

    我们无法在一篇博文里解释JavaScript的所有细节.如果你正或多或少地涉及了web应用程序开发,那么,我们的Java工具和技术范围报告揭示了,大多数(71%)Java开发者被归到了这一类,只是你对 ...

  6. 十四种Java开发工具点评

    在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美 ...

  7. [转载]有经验的Java开发者和架构师容易犯的10个错误

    首先允许我们问一个严肃的问题?为什么Java初学者能够方便的从网上找到相对应的开发建议呢?每当我去网上搜索想要的建议的时候,我总是能发现一大堆是关于基本入门的教程.书籍以及资源.同样也发现网上到处充斥 ...

  8. 2020 Java开发者数据分析:中国已成为 Java 第一大国

    最近知名开发工具供应商Jetbrains在Java 25周年之际,对开发群体做了一次有意思的数据分析. 全文内容可见:https://blog.jetbrains.com/idea/2020/09/a ...

  9. JDK各个版本的新特性jdk1.5-jdk8

    JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...

  10. JDK各版本新特性!

    1.JDK1.5 新特性 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中.自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取 ...

随机推荐

  1. LFU 的设计与实现

    LFU 的设计与实现 作者:Grey 原文地址: 博客园:LFU 的设计与实现 CSDN:LFU 的设计与实现 题目描述 LFU(least frequently used).即最不经常使用页置换算法 ...

  2. [编程基础] Python字符串替换笔记

    Python字符串替换笔记 Python字符串替换笔记主要展示了如何在Python中替换字符串.Python中有以下几种替换字符串的方法,本文主要介绍前三种. replace方法(常用) transl ...

  3. 深入Typescript--03-Typescript中的类(努力加餐饭)

    Typescript中的类 一.TS中定义类 class Pointer{ x!:number; // 实例上的属性必须先声明 y!:number; constructor(x:number,y?:n ...

  4. 深入Typescript--01-使用roolup编译Typescript

    Typescript是什么? TypeScript是Javascript的超集,遵循最新的ES5/ES6规范.Typescript扩展了Javascript语法. 为什么要用Typescript? 1 ...

  5. VMware vSphere vCenter ServerAppliance 7.0安装配置

    VMware vSphere vCenter ServerAppliance 7.0安装配置 环境说明: 1.将vCenter ServerAppliance部署在ESXi主机上,安装配置好ESXi主 ...

  6. Linux防火墙部署与配置

    Linux防火墙部署与配置 1. 实验概述 Linux作为网关,搭建小型局域网,在此基础上进行实验,了解Linux防火墙的构成.NAT和包过滤配置方法等. 2. 实验环境 网络大致结构如图2-1所示, ...

  7. Quartz.Net 官方教程 Best Practices

    最佳实践 JobDataMap 建议只存储基本数据(含String),避免序列化问题 作业执行期间,JobDetail和Trgger的底层共用一个JobDataMap 实例,因此Trigger的数据会 ...

  8. 了解 Transformers 是如何“思考”的

    Transformer 模型是 AI 系统的基础.已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表. 但是这些图表没有提供任何直观的计算该模型的框架表示. ...

  9. k210 cpu、asm、rust、smpboot、ipi

    介绍 k210的datasheet主要讲了与外设相关的内容,k210并不支持最新的完整的riscv指令集,而是实现了一部分.本文想要通过汇编来一点点摸索k210的寄存器,布局,mmu,缓存等结构 相关 ...

  10. Thymeleaf中判断Security权限 - SpringBoot

    参考:https://blog.csdn.net/perfect_red/article/details/110821582