AdoptOpenJDK是什么?
要搞清楚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是什么?的更多相关文章
- Java 9终于要包含Jigsaw项目了
当Jigsaw在Java 9中最终发布时,这个项目的历史已经超过八年了. 转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0228/180.html? ...
- 你的java 代码对JIT编译友好吗?
JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一.但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度. 在本文中 ...
- 怎样让你的代码更好的被JVM JIT Inlining
好书推荐:Effective Java中文版(第2版) JVM JIT编译器优化技术有近100中,其中最最重要的方式就是内联(inlining).方法内联可以省掉方法栈帧的创建,方法内联还使让JIT编 ...
- 你的Java代码对JIT编译友好么?(转)
JIT编译器是Java虚拟机(以下简称JVM)中效率最高并且最重要的组成部分之一.但是很多的程序并没有充分利用JIT的高性能优化能力,很多开发者甚至也并不清楚他们的程序有效利用JIT的程度. 在本文中 ...
- Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)
本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...
- 容器中的JVM资源该如何被安全的限制?
前言 Java与Docker的结合,虽然更好的解决了application的封装问题.但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制. 这将导致JVM不能稳定服务 ...
- 【Java】JDK/JVM相关工具
1.JDK自带工具 1)常见的用法参见:https://cloud.tencent.com/developer/article/1379487 2)HSDB,即Hotspot debugger,位置在 ...
- jitwatch查看JIT后的汇编码
1.下载Apache Maven 3.5.3 http://maven.apache.org/download.cgi apache-maven-3.5.3-bin.zip 解压为C:\maven3 ...
- 云服务jdk 升级为 OpenJDK11
由于oracle是个碧池,大家都懂,今年来,jdk版本更新的越来越频繁,所以目前商业版本需要收费了 每个企业都要考虑这样的问题,所以嘛,新项目试水肯定是要的,用openJDK11吧, https:// ...
随机推荐
- spark SQL(六)性能调整
spark SQL 性能调整 对于某些工作负载,可以通过在内存中缓存数据或打开一些实验选项来提高性能. 1,在内存中缓存数据 Spark SQL可以通过调用spark.catalog.c ...
- Vue-Cli程序环境搭建
环境搭建 ##1.下载node.js cmd输入 node -v 查看是否能够正确打印出版本号 cmd输入 npm -v 查看是否能够正确打印出版本号 ##2.安装node.js淘宝镜像加速器 ### ...
- maven高级笔记
Maven高级 1.maven基础知识回顾 1.1 maven介绍 maven 是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建. 依赖管理:就是对jar包的管理.通过 ...
- Java ArrayList源码分析(含扩容机制等重点问题分析)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- Codeforces Round #626 (Div. 2) E. Instant Noodles(二分图,最大公因数)
题意: 给你一个二分图,求左侧端点的所有可能子集中的点相连的右侧端点的权值的和的最大公因数. 题解: 若所有右侧端点均不在同一左侧子集中,则求所有权值的最大公因数即可 . 否则,将在相同左侧子集中的右 ...
- 【洛谷 p3373】模板-线段树 2(数据结构--线段树)
题意:已知一个数列,你需要进行下面三种操作:1.将某区间每一个数加上x:2.将某区间每一个数乘上x:3.求出某区间每一个数的和. 解法:(唉 :-(,这题卡住我了......)对于加法和乘法的混合操作 ...
- zoj3545Rescue the Rabbit (AC自动机+状压dp+滚动数组)
Time Limit: 10 Seconds Memory Limit: 65536 KB Dr. X is a biologist, who likes rabbits very much ...
- python对csv文件读写的两种方式 和 读写文件编码问题处理
''' 如果文件读取数据出错,可以考虑加一个encoding属性,取值可以是:utf-8,gbk,gb18030 或者加一个属性error,取值为ignore,例如 open(path, encodi ...
- 51Nod - 1632
B国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条交通线将其连接.A国是B国的敌国企图秘密发射导弹打击B国的交通线,现假设每条交通线都有50%的概率被炸毁,B国希望知道在被炸毁之后 ...
- c# grpc
刚接触RPC时只知道概念是远程过程调用协议,分为服务端和客户端,客户端请求服务端,服务端再回应客户端,粗看和HTTP一应一答没有什么区别.既然有着存在即合理的说法,网上找找说法,有的讲的太深感觉太啰嗦 ...