要搞清楚AdoptOpenJDK是什么,前提条件是我们需要知道JDK是什么,OpenJDK是什么。明白了JDK和OpenJDK的关系,会容易明白什么是AdoptOpenJDK。

JDK是什么?

首先,我们要搞明白JDK是什么。JDK是Java语言的软件开发工具包,它包含了Java的运行环境(JVM)、Java基础类库和Java工具。没有JVM,根本无法跑Java程序;没有Java基础类库,Java就是无根之木,无源之水;没有Java工具,Java源码就无法编译成字节码。

很多人对Java工具不甚了解,我简单的说一下吧。Java工具主要有三类:
(1)面向Java源码的工具,例如可以编译Java源码的javac.exe工具,使代码编译之后可以跑在JVM上
(2)面向JVM的工具,例如对JVM监控或者调优的工具jvisualvm.exe
(3)常用的小工具,例如用于生成密钥的keytool.exe工具

OpenJDK是什么?

其次,我们要知道OpenJDK是什么。虽然Java是sun公司发明创造的,但是sun把Java开源了。怎么把Java开源呢?肯定是开源JDK才算是开源Java啊。上面已经说的很清楚了:JDK包含了Java的运行环境(JVM)、Java基础系统类库和Java工具,说白了JDK就是Java。Sun 公司在2006 年的 JavaOne 大会上称将对 Java 开放源代码,并于2009年4月15日正式发布 OpenJDK。说到这里,你应该明白,JDK和OpenJDK的关系,就是小蝌蚪和青蛙的关系,小的时候叫JDK,长大叫OpenJDK。

OpenJDK是开源的,免费的,有的公司不讲武德,自己不往OpenJDK项目贡献力量,而是从OpenJDK中拉下一个分支,冠以自己的名号,所以市面上各种XXX JDK。关于OpenJDK变种版本,请参阅本站的另外一篇文章。

AdoptOpenJDK是什么?

接下来,说一下AdoptOpenJDK是什么吧。OpenJDK的代码更新很快,贡献源码的人追求的是功能上的酷炫,他们才不考虑软件的可用性。所以有个组织把OpenJDK的代码进行打包和测试,最后形成二进制可执行文件,这个软件就是AdoptOpenJDK。在windows平台下,就是一个.msi文件,你点击“下一步”就能完成安装。正如AdoptOpenJDK官网所言:AdoptOpenJDK are prebuilt binaries from OpenJDK class libraries.

补充说明:HotSpot和OpenJ9

另外,在AdoptOpenJDK项目中,提供两种虚拟机:HotSpot和OpenJ9,两者各有优劣,请根据自己情况选择。

AdoptOpenJDK是什么?的更多相关文章

  1. Java 9终于要包含Jigsaw项目了

    当Jigsaw在Java 9中最终发布时,这个项目的历史已经超过八年了. 转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0228/180.html? ...

  2. 你的java 代码对JIT编译友好吗?

    JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一.但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度. 在本文中 ...

  3. 怎样让你的代码更好的被JVM JIT Inlining

    好书推荐:Effective Java中文版(第2版) JVM JIT编译器优化技术有近100中,其中最最重要的方式就是内联(inlining).方法内联可以省掉方法栈帧的创建,方法内联还使让JIT编 ...

  4. 你的Java代码对JIT编译友好么?(转)

    JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一.但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度. 在本文中 ...

  5. Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)

    本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...

  6. 容器中的JVM资源该如何被安全的限制?

    前言 Java与Docker的结合,虽然更好的解决了application的封装问题.但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制. 这将导致JVM不能稳定服务 ...

  7. 【Java】JDK/JVM相关工具

    1.JDK自带工具 1)常见的用法参见:https://cloud.tencent.com/developer/article/1379487 2)HSDB,即Hotspot debugger,位置在 ...

  8. jitwatch查看JIT后的汇编码

    1.下载Apache Maven 3.5.3 http://maven.apache.org/download.cgi apache-maven-3.5.3-bin.zip 解压为C:\maven3 ...

  9. 云服务jdk 升级为 OpenJDK11

    由于oracle是个碧池,大家都懂,今年来,jdk版本更新的越来越频繁,所以目前商业版本需要收费了 每个企业都要考虑这样的问题,所以嘛,新项目试水肯定是要的,用openJDK11吧, https:// ...

随机推荐

  1. yum.repos.d中的变量($releasever与$basearch)

    今天打算更新一下centos的repo源,把原先国外的repo地址换成国内的,速度快一些.主要替换的文件是/etc/yum.repos.d/Centos-Base.repo .替换的时候,不知道大家有 ...

  2. elasticsearch7.8权限控制和规划

    由于在版本7开始,x-pack可以免费使用了,但是权限控制免费的不够细,但是控制到索引级别都基本够用了.付费的可以体验更细致的权限控制.本文的基础是已经有了es集群的基础上进行的. 官网:https: ...

  3. jdk 安装过程配置环境变量 error 的解决过程

    jdk 安装过程配置环境变量 error 的解决过程 问题背景: 我在安装 jdk 过程中在JAVA_HOME和path中添加路径后, cmd 中输入java 和javac均出现错误,因为之前在 D ...

  4. 小希的迷宫B - B

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...

  5. 2019 徐州网络赛 M Longest subsequence t

    对于答案来说,一定是 前 i-1 个字符和 t的前 i 个一样,然后第 i 个字符比 t的 大 \(i\in [1,m]\) 前缀为t,然后长度比t长 对于第一种情况,枚举这个 i ,然后找最小的 p ...

  6. 数组复制函数memcpy和strcpy

    strcpy和memcpy主要有以下3方面的区别.1.复制的内容不同.strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组.整型.结构体.类等.2.复制的方法不同.strcpy不需 ...

  7. 放苹果 POJ - 1664 递推

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t(0 <= t < ...

  8. 如何使用Gephi工具进行可视化复杂网络图

    在Gephi安装官网中也介绍了一些如何使用该工具的方法,我将根据自己的数据和可视化的图片进行介绍 第一步:整理数据格式,我的数据是.csv格式的(.xlsx,.xls等等) 数据第一行第一列必须是相同 ...

  9. [Python] Uvicorn+FastAPI快速搞定Restful API开发

    目录 安装模块 运行代码 运行命令 快速文档 安装模块 # 一个现代的,快速(高性能)python web框架 pip install fastapi # 主要用于加载和提供应用程序的服务器. pip ...

  10. hdu 5883

    Alice is planning her travel route in a beautiful valley. In this valley, there are NN lakes, and MM ...