前言

最近在搞一个大项目,做一些基础选型工作。首先就是 JDK 的选型。由于 Oracle 在 Java 8 更改了许可证。这使得我在对 JDK 的选择上除了性能考虑外还要特别注意合规检查。这次我选择了AdoptOpenJDK

AdoptOpenJDK

AdoptOpenJDK 是一个开放的,社区主导的计划,它提供了来自OpenJDK的 Java 平台参考实现的免费,预构建的二进制文件。

AdoptOpenJDK 发行版涵盖了最全面的操作系统和体系结构。使用 AdoptOpenJDK 二进制文件,您可以确信它在所有环境中的构建和测试都完全相同。

多虚拟机实现

目前它提供了两种虚拟机实现,一种是我们常见的 HotSpot;另一种是 OpenJ9。它们各有特点,HotSpot 比较成熟,而 OpenJ9 在云端更具有占用资源少、启动快的特点,更适合容器化。

稳定可靠

质量是AdoptOpenJDK二进制文件的另一个关键组成部分。社区有大量不同的测试可供使用,以验证每个构建的质量,从而确保应用程序按预期运行和运行。通过回归,功能,系统,负载,应用程序和性能测试,始终可以生成稳定可靠的版本。此外,构建和测试结果是完全开放的,并且可以由社区进行审查。很多财富 500 强公司的 JVM 应用都构建在AdoptOpenJDK之上。

社区驱动

AdoptOpenJDK的发展方向由个人开发者主导,保持中立,不受制于商业公司,为此它成立了一个专门的技术指导委员会来确保这一点。AdoptOpenJDK社区的目标是确保这些定期更新的 Java 始终可供所有人跨平台免费使用。

AdoptOpenJDK社区也非常活跃,在 Java 16 正式发布后,AdoptOpenJDK也第一时间进行了跟进发布了对应版本的 JDK 。而且同时对我们常用的 Java 8、Java 11 进行了长期支持。在用户响应上AdoptOpenJDK更快。

在 2020 年 6 月 19 日,AdoptOpenJDK 加入了 Eclipse 基金会。

安装方便

AdoptOpenJDK提供了多个选择方式,你可以根据需要组合选择。

组合选择JDK

而且提供了各个平台的包管理器安装,无论是 SDKMAN、Chocolatey、Homebrew 或者 Linux 下的包管理器都支持的不错。甚至在 Windows 下连 Java 环境变量都不需要了,如果是王八壳子,你还得注册个账号。

下载量多

截至目前AdoptOpenJDK的下载量已经达到 249,967,583,接近 2.5 亿次。进入 2021 年以来AdoptOpenJDK的下载量已经突破 2000 万次。

数据来自https://dash.adoptopenjdk.net/

总结

目前各大公司包括国内的阿里、华为,甚至不以 Java 为主要技术栈的腾讯都开源了自己的 JDK。OpenJDK 越来越多地被使用,开始成为主流选择。通过胖哥的介绍你可以尝试一下AdoptOpenJDK

往期推荐

一起学习下一线大厂的分布式唯一ID生成方案!

分库分表这样玩,可以永不迁移数据、避免热点

为什么阿里不允许用Executors创建线程池,而是通过ThreadPoolExecutor的方式?

为什么培训班出来的程序员总遭人嫌弃?

996、过劳死都见过了!“被猝死”还是头一回......

推荐关注本文作者:码农小胖哥

分享高质量编程知识,探讨IT人生

技术干货,实战技巧,面试技巧,前沿资讯一个都不能少

喜欢的这里报道

↘↘↘

在一个大项目中,我选择了另一种JDK实现AdoptOpenJDK相关推荐

  1. 在大项目中,实施顾问主要负责什么具体工作?

    在大项目中,实施顾问主要负责什么具体工作? 现在分工细了,大项目都是由多专业人组成团队进行工作: 1.咨询顾问:流程梳理.诊断.优化.理念\需求引导输送获得老板和管理层认可 2.项目经理:计划.分配组 ...

  2. 10.01.05专题 “如何处理大项目中各个PM之间的沟通效率“

    huner_wang-PMO-北京 说 (12:03):  对了,我发起个主题如何?大家帮我分析下怎么样? 毳戥亳_.NET_上海 说 (12:03):  什么主题? chuner_wang-PMO- ...

  3. 什么是scss,怎么在一个VUE项目中使用scss

    首先什么是scss呢? scss是一种css预处理语言,是一个css的扩展,它在css语法的基础上,允许您使用变量,嵌套规则,混合,导入,继承等功能,使得css更加强大和优雅,而且其完全兼容css3. ...

  4. 商业项目中最受欢迎的 7 种编程语言

    [导读]:Semaphore 是一个国外持续集成/持续部署方案服务商.Semaphore 称自己在过去三年对其开发者用户进行调查,调查他们在开发商业项目时一般都使用哪些语言.这些数据基于成千上万个在  ...

  5. 软件项目中引用头文件的几种方法及要点

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一些细节 ...

  6. 从COVID-19大流行中汲取哪些教训?10种方法帮CIO预防下一次危机

    导读:以下这些从COVID-19大流行中汲取的经验教训,可以帮助IT领导者和TI经理为下一次紧急情况做好准备. 您的IT团队准备好应对COVID-19大流行了吗?您的网络可以一次使用VPN处理所有员工 ...

  7. 如何从一个大项目中,迅速的定位执行速度慢的语句. (定位慢查询)

    我们先了解下什么是慢查询 MySQL默认10秒内没有响应SQL结果,则为慢查询 慢查询都会有日志的存放 显示查看慢查询次数: show status like 'slow_queries'; 可以去修 ...

  8. 项目连接不了mysql_关于Java项目中连接mysql失败的几种情况原因分析

    很多基础比较薄弱的童鞋对于Java链接mysql的错误原因不是很了解,今天我将罗列一下几种比较常见的错误类型,大家可以根据自己遇到的情况对号入座.密码错误导致的mysql连接不上,密码错误分为以下几种 ...

  9. Vue移动端项目中px转rem的两种方法

    1)使用lib-flexible动态设置REM基准值(html标签的字体大小) 安装依赖 yarn add amfe-flexible// 或者npm i amfe-flexible 然后在main. ...

最新文章

  1. The XOR Largest Pair(01trie模板题)
  2. Zone.js 简介 抛砖引玉
  3. freebsd php 编译 mysql sql2005_问下:Freebsd下用php连接ms sql server
  4. Python基于聚类算法实现密度聚类(DBSCAN)计算
  5. c语言不可见字符的ascii,转CHAR不可见字符
  6. elasticsearch api中的Buckets(桶)及Metrics(指标)
  7. oracle函数trunc的使用
  8. 7-3 主从复制配置
  9. 2021L3HCTF luuuuua Writeup
  10. EtherCAT运动控制器的PLC编程(一) 直线插补
  11. 计算机的内存储器应用范围,计算机的内存储器可与cpu什么交换信息
  12. excel高级筛选怎么用_Excel筛选功能这样用,再多数据我也不惧了
  13. 生存分析绘图——Kaplan-Meier生存曲线
  14. 人教版三年级计算机教学计划,2017人教版三年级信息技术教学计划范文
  15. CodeBlocks旧版下载
  16. java练习(金额转换)
  17. 数据集成的两种架构:ELT和ETL
  18. MySQL SQL语句面试准备
  19. JavaScript 面向对象(二) —— 案例篇
  20. 1204big.th index.php,孟加拉 郵政編碼(郵遞區號)查詢 - 郵編庫(繁體)

热门文章

  1. 网络层IP路由的负载均衡实现思路
  2. 很高兴加入51cto——交朋友
  3. cve-2019-7609 Kibana远程代码执行漏洞攻击方法和漏洞原理分析
  4. golang 读取 mysql null 字符串错误
  5. 如何识别高级的验证码
  6. windows 获取当前进程/线程的ID、句柄和内核地址
  7. windbg调试命令
  8. VC6.0生成文件的种类和作用
  9. rose框架学习总结
  10. linux内核 asmlinkage宏