JDK的版本有多少种,Java开发者应该选择哪一种?
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开发者应该选择哪一种?的更多相关文章
- Java 开发者不容错过的 12 种高效工具
Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高效编程工具.所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用.正在使用或 ...
- Java获取文件Content-Type的四种方法
HTTP Content-Type在线工具 有时候我们需要获取本地文件的Content-Type,已知 Jdk 自带了三种方式来获取文件类型. 另外还有第三方包 Magic 也提供了API.Magic ...
- Java/JDK各版本主要特性汇总
目录 Java18(2022.3) Java17(2021.9)(LTS版本) Java16(2021.3) Java15(2020.9) Java14(2020.3) Java13(2019.9) ...
- JDK各个版本的新特性
对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JD ...
- 从Java开发者的视角解释JavaScript
我们无法在一篇博文里解释JavaScript的所有细节.如果你正或多或少地涉及了web应用程序开发,那么,我们的Java工具和技术范围报告揭示了,大多数(71%)Java开发者被归到了这一类,只是你对 ...
- 十四种Java开发工具点评
在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具,Java菜鸟们如初入大观园的刘姥姥,看花了眼,不知该何种选择.的确,这些工具各有所长,都没有绝对完美 ...
- [转载]有经验的Java开发者和架构师容易犯的10个错误
首先允许我们问一个严肃的问题?为什么Java初学者能够方便的从网上找到相对应的开发建议呢?每当我去网上搜索想要的建议的时候,我总是能发现一大堆是关于基本入门的教程.书籍以及资源.同样也发现网上到处充斥 ...
- 2020 Java开发者数据分析:中国已成为 Java 第一大国
最近知名开发工具供应商Jetbrains在Java 25周年之际,对开发群体做了一次有意思的数据分析. 全文内容可见:https://blog.jetbrains.com/idea/2020/09/a ...
- JDK各个版本的新特性jdk1.5-jdk8
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...
- JDK各版本新特性!
1.JDK1.5 新特性 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中.自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取 ...
随机推荐
- uniapp 微信小程序 改变头部的信号、时间、电池显示颜色
修改前 修改后 修改方法:"navigationBarTextStyle":"white"
- JavaScript:操作符:逻辑运算符及其隐式转换数据类型
逻辑非! 用来对布尔值进行取反,即!true = false: 当取反的变量不是布尔值,会进行隐式转换为布尔值: 非0的数字,都转换为true 非空字符串,转换为true 非空对象,转换为true I ...
- 07.synchronized都问啥?
大家好,我是王有志.关注王有志,一起聊技术,聊游戏,从北漂生活谈到国际风云.最近搞了个抽奖送书的活动,欢迎点击链接参与. 如果Java面试有什么是必问的,synchronized必定占据一席之地.初出 ...
- Educational Codeforces Round 142 (Rated for Div. 2) A-D
比赛链接 A 题解 知识点:贪心. 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool ...
- SOFAJRaft源码阅读-Netty时间轮算法的实践
SOFAJRaft的定时任务调度器是基于Netty来实现的,所以本文将会基于Netty时间轮算法,然后再结合SOFAJRaft源码进行分析. @Author:Akai-yuan @更新时间:2023/ ...
- JS基础简介
JS基础简介 一.JS简介 JavaScript(简称'js')是一种具有函数优先的轻量级.解释型或及时编译型的编程语言.虽然它是作为开发web页面的脚本语言而出名,但是它也被用到了很多的非浏览器环境 ...
- Array list练习
Array list练习 数据添加到集合 生成6个1~33之间的随机整数,添加到集合,并遍历 public class Test01ArrayList { public static void mai ...
- MySQL-数据库、MySQL
1.存取数据的演变史 1.文本文件: 文件路径不固定(导致代码兼容性下降) 数据格式不统一:(max|123, max_123) 2.软件开发目录规范: 1.规定了数据应该保存在db目录下>&g ...
- Cnblogs博客皮肤开发调试最佳方案
Cnblogs博客园支持自定义js来美化站点(需要申请JS权限),可以将主题托管到自己的云资源或CDN加速节点节点上. 例如我的网站为 www.example.com(IP或其它host),我将编译后 ...
- 【学习日志】@NotNull注解不生效问题
后端API需要接受fe传过来的参数,就必然涉及到参数校验. Spring提供了使用注解进行非法判断的引用(需要主动引入),继承自 spring-boot-starter-parent <depe ...