JVM、JRE和JDK三者间的区别和联系
简介:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
JDK(Java Development ToolKit)
Java开发工具包,它除了包括JRE和JVM外,还包括java(用于执行.class文件)、javac(用于将.java文件编译成.class文件)等工具和JAVA基础的类库。这些工具能够很好地帮助我们进行Java开发。
JRE(Java Runtime Enviromental)
Java运行时环境,它包括了JVM和Java的一些常用的类库,但不包含开发工具(JDK)–编译器、调试器和其它工具。
它包括了JVM和Java的一些常用的类库,JVM就是上面所说的Java虚拟机,而类库就是我们在编写好Java程序后所依赖的核心类和支持文件,没有这些类库,我们编写好Java程序就没法正常执行,可以说JRE是运行Java程序的最小环境。
JVM(Java Virtual M 大专栏 JVM、JRE和JDK三者间的区别和联系echinal)
JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
jdk和jre关系
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
至于jvm,jdk和jre都包含jvm。简单来说jvm就是一个软件。一个什么软件呢?一个可以运行Java的软件。我们在将.java编译后,会生成相应的.class文件,那么,问题来了,什么问题呢?就是这个.class文件怎么运行?运行在哪里?答案就是JVM。JVM就是加载并运行.class文件的软件。
JVM、JRE和JDK三者间的区别和联系的更多相关文章
- Java中JVM、JRE和JDK三者有什么区别和联系?
Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE.没有 JRE 的支持,Java 语言便无法运行.当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就 ...
- 关于JVM、JRE、Jdk三者的定义与联系
许多初学者对于java中的JVM.JRE.JDK三者的定义与联系有些模糊,接下来我就根据我的理解来为各位解答一下,希望能帮到正在努力的你们. JVM JVM是Java Virtual Machin ...
- JVM, JRE 和JDK
JVM -- java virtual machine A Java virtual machine (JVM) is a process virtual machine that can execu ...
- JRE和JDK的作用和区别
JVM(Java Virtual Machine)是一个虚拟的用于执行bytecode字节码的“虚拟计算机”JRE(Java Runtime Environment):Java 虚拟机.库函数 ...
- UIColor,CGColor,CIColor三者间的区别和联系
一.UIColor UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透明度的值,它的颜色空间已经针对IOS进行了优化.UIColor包含了一些类方法用于创建一 ...
- 类,抽象基类,接口类三者间的区别与联系(C++)
结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...
- Python中read()、readline()和readlines()三者间的区别和用法
2019-01-15 10:48:43 前言 众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了.以前看书的时候 ...
- JRE、JDK、JVM区别和联系
首先说Java编程语言,它是一门高级编程语言,具体由谁何时创建的,读者可以到网上查找相关资料,这里就不再赘述.那么,谈到Java就不得不谈谈JVM.JRE和JDK三者间的区别和联系. JVM:英文全称 ...
- 辨析ADK&JVM&JRE&JDK&ADT
一.SDK 英文全称:Software Development Kit 中文译名:软件开发工具包 详解: 由第三方服务商提供的实现软件产品某项功能的工具包. 为了扩展软件功能或其它方面而设计出来给开发 ...
随机推荐
- CodeForces 994B Knights of a Polygonal Table(STL、贪心)
http://codeforces.com/problemset/problem/994/B 题意: 给出n和m,有n个骑士,每个骑士的战力为ai,这个骑士有bi的钱,如果一个骑士的战力比另一个骑士的 ...
- MJServer部署
工具: 1.jdk-8u60-macosx-x64.dmg 2.MjServer.zip 3.eclipse-jee-kepler-SR2-macosx-cocoa-x86_64.tar.gz 4.a ...
- [ZJOI2019]Minimax搜索(线段树+动态DP+树剖)
为什么我怎么看都只会10pts?再看还是只会50~70?只会O(n2(R-L+1))/O(nlogn(R-L+1))……一眼看动态DP可还是不会做…… 根节点的答案是叶子传上来的,所以对于L=R的数据 ...
- python学习笔记(28)-unittest单元测试-执行用例
执行用例 #写一个测试类 import unittest import HTMLTestRunnerNew #写好的模块可以直接调用 #import HTMLTest #测试报告模板 from cla ...
- OAuth 2.0安全案例回顾
转载自:http://www.360doc.com/content/14/0311/22/834950_359713295.shtml 0x00 背景 纵观账号互通发展史,可以发现OAuth比起其它协 ...
- mybatis: Invalid bound statement (not found)即使调试源码也很难注意的坑
需要改成 注意: 这个是不能一次性建立多级目录的 这个才是ok的
- 三十七、www服务nginx进阶
六.查看nginx默认首页和目录:如下,可以看到,默认的目录是html,首页是index.html [root@djw1 conf]# grep html nginx.conf ...
- dao层单元测试报错CONDITIONS EVALUATION REPORT
0 环境 系统:win10 编辑器:IDEA 1 正文 1.1 起因 在controller层测试 测试url时没问题的 但是我单元测试就报错 1.2 排查 因为controller层 springb ...
- Elasticsearch Rest模式和RPC模式性能比较
Elasticsearch 有两种链接模式,即Rest方式(对应端口9200)和RPC方式(对应端口9300)这两种访问效率到底差多少,在同样的业务逻辑下,测试了一波. 用的JMeter进行压力测试 ...
- Mysql-win免安装卸载服务后重新安装不能启动的问题
一.先看配置文件有没有问题,以下是一个简单的配置 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 port ...