要搞清楚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. Linux常用命令详解(第二章)(cat、more、less、head、tail、clear、poweroff、reboot、alias、unalias、uname、hostname、history、whitch、wc、w、who、whoami、)

    本章命令(共18个): 1 2 3 4 5 6 7 8 9 10 cat more less head tail clear poweroff reboot alias unalias uname h ...

  2. libuv事件循环

    目录 1.说明 2.数据类型 2.1.uv_loop_t 2.2.uv_walk_cb 3.API 3.1.uv_loop_init 3.2.uv_loop_configure 3.3.uv_loop ...

  3. .NET使用DinkToPdf将HTML转成PDF

    0.介绍 C# .NET Core wrapper for wkhtmltopdf library that uses Webkit engine to convert HTML pages to P ...

  4. PTA 乙 1002

    1002 写出这个数 题目描述 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10^1 ...

  5. 使用 with as 优化SQL

    当我们书写一些结构相对复杂的SQL语句时,可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ with as ...

  6. 设计模式(十七)——迭代器模式(ArrayList 集合应用源码分析)

    1 看一个具体的需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系.如图: 2 传统的设计方案(类图) 3 传统的方式的问题分析 ...

  7. 2019牛客暑期多校训练营(第九场)E.All men are brothers(并查集+排列组合)

    题意:现在有n个集合 每个集合大小为1 现在你可以把集合合并m次 每次会告诉你哪个集合合并 让你输出每次从不同的四个集合里各选出四个的组合方案 思路:我们可以想到用并查集模拟集合的合并 对于方案数 我 ...

  8. [USACO12FEB]Symmetry

    传送门: https://www.luogu.com.cn/problem/P3046 https://ac.nowcoder.com/acm/contest/6306/G 题意 给定n个不同的点,求 ...

  9. Codeforces Round #649 (Div. 2) B. Most socially-distanced subsequence

    题目链接:https://codeforces.com/contest/1364/problem/B 题意 给出大小为 $n$ 的一个排列 $p$,找出子序列 $s$,使得 $|s_1-s_2|+|s ...

  10. 【ybt金牌导航1-2-6】【luogu P2467】地精部落

    地精部落 题目链接:ybt金牌导航1-2-6 / luogu P2467 题目大意 有一个排列,要使得每个位置要么都比两边高,要么比两边低. 而且一定要以一高一低的方式排列. 两边的只用比旁边的那个高 ...