理解JVM、JRE和JDK

JVM

JVM,全称为Java Virtual Machine,中文的意思是:Java虚拟机。
   在理解Java虚拟机这个定义之前,我们先讲讲为何叫虚拟机呢?称为虚拟机,顾名思义,它应该不是真实存在的。那它是什么呢?在这里,我们把它理解为一种规范(就像国家颂布的法律,它只是条文,只是规则,是概念上的东西),这种规范告诉了代码如何能够在实际计算机上运行。
   接下来,我们再把Java这个名词和虚拟机加在一起,然后大家就很自然地会这样理解:Java虚拟机就是告诉了Java代码如何能够在实际计算机上运行的一种规范。
   其实,理解到这,已经可以说理解了80%,更准确的理解是,这里的Java指的是“Java字节码”,因为,JVM不仅仅只为Java设计,其他编程语言,只要我们把它编译成Java字节码,都可以在支持Java虚拟机运行的计算机上运行。
   最后,我们得到更正确的理解:“Java虚拟机是指定了Java字节码如何能够在实际计算机上运行的一种规范”。

目前,实现了JVM,除了主流的Oracle 公司的HotSpot VM,还有其他公司研发的JVM,如:IBM公司研发的J9 VM、基于OpenJDK深度定制的Taobao JVM,等等。

JRE

JRE,全称为Java Runtime Environment,中文意思是:Java运行时环境

JRE包含了HotSpot VM,并且还包含了一系列的库文件以及JVM在运行时使用的其他配置文件,为Java应用程序提供运行时环境。

JVM

JDK,全称为Java Development Kit,中文意思是:Java开发工具包。

JDK包含了JRE以及开发Java应用程序要用的开发工具(如javac.exe、javadoc.exe等)。

JVM、JRE和JDK之间的关系

原文地址:https://www.cnblogs.com/springmorning/p/10256791.html

时间: 2024-07-28 13:00:07

理解JVM、JRE和JDK的相关文章

java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)

首先声明,这篇文章是从网上粘贴过来的.原文地址是:http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html.感觉写的很好,所以粘贴过来记录下. 这些日子,在看一些java的东西,由于刚入手,对java不是很了解,结果对java的一些名词没有一个清晰的脉络,现在稍微整理一下 令我纠结的是jdk,sdk,jre,jvm,ide,adt,跨平台性,j2ee,j2se,这些名词弄的我云里雾里的. 首先,什么是SDK呢? Softwa

弄懂 JRE、JDK、JVM 之间的区别与联系

其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云.本篇不会讲述 jvm 底层是如何与不同的系统进行交互的,而主要理清楚三者之间的区别,搞清楚我们写的 xxx.java 文件是被谁编译,又被谁执行,为什么能够跨平台运行. 首先,我们分别对这三者进行阐述. JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机.它只认识 xxx.class 这种类型的文件,它能够将 class

POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别

POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. JVM(Java Virtual Machine),即Java虚拟机 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修

JVM、JRE,JDK

JVM解释class Java虚拟机,解释编译后的class文件给系统..java代码编译成 .class机器指令,就能在JVM运行了,直接到硬件执行,实现了跨平台,只要操作系统安装了JVM,就能执行,这样CS程序与具体的操作系统无关.BS系统只要浏览器中有JVM即可执行. JRE运行java程序,包含JVM和java程序调用的java类库,一次编写到处运行,就是因为使用了JRE这个java程序和操作系统的中介.也叫java插件. java程序的运行环境,现在是6.0版.包含JVM(对应JDK安

JRE、JDK、JVM区别和联系

首先说Java编程语言,它是一门高级编程语言,具体由谁何时创建的,读者可以到网上查找相关资料,这里就不再赘述.那么,谈到Java就不得不谈谈JVM.JRE和JDK三者间的区别和联系. JVM:英文全称Java Virtual Machine,字面意思"Java虚拟机",简单来说就是一个软件.一个什么软件呢?一个可以运行Java的软件.我们在将.java编译后,会生成相应的.class文件,那么,问题来了,什么问题呢?就是这个.class文件怎么运行?运行在哪里?答案就是JVM.JVM就

jre、jdk、jvm之间的关系

很多Java的程序员在写了很多代码之后,你问他JRE和JDK是是什么关系,JVM又是什么东西,他是不知道的. JVM(Java Virtual Machine) Java 虚拟机.它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作.所以说,JVM 是 Java 能够跨平台的核心. JRE (Java Runtime Environment) Java 运行时环境.它主要包含两个部分,JVM的标准实现和 Java 的

JRE,JDK,JVM的区别

JRE,JDK,JVM的区别JRE是Java Runtime Environment缩写,指Java运行环境,里面包含Java虚拟机,Java基础类库.不包含开发工具JDK.JDK是Java语言的软件开发工具包.主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. JDK包含了JRE,同时还包括java源码的编译器javac.监控工具jconsole.分析工具jvisualvm等.JVM是Java

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基础的类库.这些工具

【转】[译]深入理解JVM

http://www.cnblogs.com/enjiex/p/5079338.html 深入理解JVM 原文链接:http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals 每个使用Java的开发者都知道Java字节码是在JRE中运行(JRE: Java 运行时环境).JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库.尽管