JVM、JDK、JRE你分的清吗
JVM、JDK、JRE你分的清吗
前言
在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。
JVM
学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JVM是JAVA跨平台的核心,它主要是指的是JAVA虚拟机,JVM是不能单独安装的。JVM主要功能是屏蔽了不同平台之间的差异性,负责将java字节码文件解释成对应系统可以运行的机器指令,我们在不同操作系统上执行JAVA文件的时候,需要安装对应系统的JDK,编写的JAVA程序首先会被编译成.class文件,再把.class文件交给对应系统的JVM虚拟机翻译成对应系统的操作指令进行执行,也就是说JVM会把.class文件中的字节码指令识别并且调用对应操作系统上的API进行执行。JVM可以进行定制,每个人都可以开发属于自己的JVM。
JRE
JRE是Java运行时环境,它包含JAVA程序所需的所有内容,包括Java虚拟机、Java类库、Java命令等。JRE是可以单独进行安装的,但是不能创建新的JAVA程序。
JDK
JDK是Java的开发工具包,是编译环境,一般我们开发程序下载安装的就是JDK,它是JAVA开发必需的工具,它包含JAVA编译器,包含Java编译命令,例如javac.exe,java.exe等,还包含Java的运行环境,即上面我们提到的JRE,还包含JVM虚拟机,所以一般我们开发JAVA程序,安装JDK之后就会安装好JRE和JVM。JDK是可以创建新的JAVA程序的。JDK和JRE可以单独安装,但是JVM不能单独安装,它们之间的关系可以简单理解为JDK>JRE>JVM。
总结
如果只是简单运行JAVA程序的话,安装JRE即可,但是如果是开发JAVA程序的话,那就需要安装JDK了,但是运行部分JAVA应用程序时,如果需要JDK来进行编译的,可能也需要安装JDK才可以运行。
原文链接:https://monkey.blog.xpyvip.top/archives/jvmjdkjre-ni-fen-de-qing-ma
JVM、JDK、JRE你分的清吗的更多相关文章
- JVM,JDK,JRE
JVM,JDK,JRE 什么是JVM Java 虚拟机. 这个名词由Java和虚拟机前后两部分组成. 它有和其他虚拟机共性:JVM是通过软件模拟的计算机系统. 它也有自己的特性:JVM使用软件模拟的指 ...
- jvm jdk jre 关系
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...
- JVM/JDK/JRE/IDE—区别(很经典)
转载于 http://blog.csdn.net/jojo52013145/article/details/5801916 只是为了学习,转载没有别的目地,就是爱copy,copy一点点,进步一点点 ...
- jdk,jre.jvm三者的关系
jdk>jre>jvm jdk=jre+java的开发工具(包括java.exe,javac.exe.javadoc.exe) jre=jvm+java核心类库
- 对JDK,JRE,JVM的理解
JAVA用到现在还是分不太清楚JDK,JRE,JVM这三者的区别与联系,一直都是模模糊糊的.所以今天整理下此中的关系. 简单说明:我们编写的.java文件经过JDK(JDK的bin目录下javac.e ...
- java学习之Java中JDK,JRE和JVM之间的关系(转载)
最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的 ...
- Java中JDK,JRE和JVM之间的关系
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...
- dos命令,jdk&jre&jvm的关系,classpath和path区别
Day01_SHJavaTraing_4-2-2017 一.学习方法 1.独立思考 2.独立整理.总结知识点 3.整理Exception报错文档 4.莫钻牛角尖 5.敲代码,敲,猛敲,死里敲 6.写代 ...
- Java中JDK,JRE和JVM之间的关系-(转载)
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...
随机推荐
- django自带的序列化组件
1.什么是序列化组件 在django中,自带一个序列化组件,它是用来将数据进行整理.转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作. 2.为什么要用序 ...
- Luogu2938 [USACO09FEB]股票市场Stock Market (DP,多重背包)
第n天不卖,视为卖了又原价买回 #include <iostream> #include <cstdio> #include <cstring> #include ...
- Excel 统计函数(六):RANK
[语法]RANK(number,ref,[order]) [参数] number:要找到其排位的数字. ref:数字列表的数组,对数字列表的引用.Ref 中的非数字值会被忽略. order:一个指定数 ...
- virtio 驱动的数据结构理解
ps:本文基于4.19.204内核 Q:vqueue的结构成员解释: A:结构如下,解析附后: struct virtqueue { struct list_head list;//caq:一个vir ...
- [CSP day1T3]树上的数
题面 题解 这道题由于是求字典序最小的,所以要贪心地枚举数字,然后找可以走到的编号最小的点,处理这条路径. 这条路径有一些特性. 以下是特别精炼的结论: 所以一旦选好了路径,这些边的先后顺序就被定死了 ...
- 钓鱼利用-CVE-2018-20250
钓鱼利用-CVE-2018-20250 漏洞影响版本 WinRAR < 5.70 Beta 1 Bandizip< = 6.2.0.0 好压(2345压缩) < = 5.9.8.10 ...
- ESP8266 NONOS SDK学习
一.概况 1.存储 ESP8266 带有 160 KB 的 RAM,其中 64 KB 为 iRAM,96 KB 为 dRAM.iRAM 进一步 分成两块:32 KB iRAM 块运行标有 IRAM_A ...
- 不当使用 union all 导致的SQL解析时间过长的问题优化
在帮助用户优化应用过程中,发现用户大量使用union all 导致SQL解析非常缓慢的问题.考虑到这个问题很有代表意义,我觉得很有必要对于问题进行总结. 一.用户例子 WITH company_use ...
- KingbaseES R3 读写分离集群在线扩容案例
案例说明: 1. 通过sys_basebackup创建新备库. 2. 将备库加入到Cluster nodes管理,可以用kingbase_monitor.sh一键启停. 3. 主备复制切换测试. 此次 ...
- 002-ImageNetClassificationDeep2017
ImageNet classification with deep convolutional neural networks #paper 1. paper-info 1.1 Metadata Au ...