了解JDK,JRE和JVM

什么是JVM

大家都知道,计算机只能识别0,1序列
我们学习的C语言、java都是高级语言,接近英文语法,但是计算机并不认识它们,
所以就需要一个翻译员来在高级程序和0,1序列间做翻译。

问题在于,每个平台认识的0,1序列式不一样的,
比如,一个指令在Windows上是0101,到了Linux下也许是1010,
因此必须使用不同的编译程序为不同平台编译出可执行的机器码。

所以,在Windows上编译过的程序无法直接拿到Linux上执行。

java语言也需要编译,但是它编译后,不会直接生成0,1序列,而是翻译为中介格式的位码,也就是.class文件

而此时,JVM(java虚拟机)就会将已经是位码的文档,翻译成 相依于平台 的机器码。

对java而言,只认识一种操作系统,这个系统即JVM,位码文档就是JVM的可执行文件
(就好比.exe是Windows的可执行文件)

JVM和JRE的区别

JRE即java的执行环境,其中包含JVM(没有操作系统,.class文件压根无法执行)和javaSE API。

javaSE API中含高了各式各样常用的链接库。
比如说System.out.println("Hello");
这行代码中,System是一个类,out是它的一个对象,println()是out对象的方法。
这些都是前人已经编译好,并放进了API中,我们才能直接使用的。

API中还包含了很多链接库,如集合,I/O,AWT等,不负责任地说,学习java,就是学习各种链接库的使用

实际上JRE还包括了部署技术,也就是如何将程序安装到客户端的技术。如图1(在下方)
也可以直接进这个网址 http://docs.oracle.com/javase/8/docs/index.html 查看原图
点击(部署)Deployment即可查看其中的技术
(反正我看不懂其中的英文。。。有能力的看看吧)

所以我们可以看出,JRE并不是单纯的JDK,还包含了API和Deployment哦。

最后就是大Boss---->JDK,即java开发工具,其中包含了JRE,还包含了javac(编译工具),javadoc(生成帮助文档工具)等

其实我对于javadoc并不是很了解,也解释不清楚,只知道他会根据程序中的一些特殊注释格式生成注释文档。如:

/**
*@autor 张三
*/

生成的注释文档中就会显示本程序的autor是 ”张三“。

对于其中各标签的说明可见javadoc百度百科:

http://baike.baidu.com/link?url=8ZMSgujSxY2rMQA7gBQDRiHCGsPYxoHNWbxwPUOz9iATTyskQ9T3BOPpbaCXhf8gjbWgtlSIo17YbR_JavMzzK

有了这些工具,我们才能愉快地开发。

所以,如果你不需要写JAVA程序,只需要把可执行文件运行起来的话,只需要安装JRE就好了,即执行.class文件需要API和JVM。

时间: 2024-10-12 21:14:47

了解JDK,JRE和JVM的相关文章

Difference between JDK, JRE and JVM

With Java programming language, the three terms i.e. JDK, JRE and JVM will always be there to understand the difference between them. If you area Java developer, it is very important to know about these core concepts of Java language. Once, if you un

Java中JDK,JRE和JVM之间的关系

初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是面向开发者的,JRE是面向使用JAVA程序的用户,上面只是简单的区别,一般网上好多都讲概念,我就不讲了,直接截图应该会更清晰一点,我安装的JDK1.8,效果如图: JDK和J

java学习之Java中JDK,JRE和JVM之间的关系(转载)

最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机.JDK是

Java基础知识 ——JDK,JRE和JVM

1.开发简单的Java程序过程: 名词解释: JDK:JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具.没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE. JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工

【java学习】JDK、JRE、JVM的关系

目录结构: contents structure [-] 什么是JDK,JRE,JVM 安装JDK的时候为什么有两个jre 专用JRE 共用JRE 共用JRE和专用JRE的对比 java的跨平台特性 JDK各个文件的作用 参考文章 1,什么是JDK,JRE,JVM. JDK:java development toolskit,包含java开发工具和jre. JRE:java runtime enviroment,包含java运行环境和jvm. JVM:java virtual machine,j

Java中的JDK,JRE和JVM之间的区别

JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库.JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序.尽管它们看起来差不多,但是它们是不同的针对特定目的的

Java初学者不得不知的概念,JDK,JRE,JVM的区别?

JVM(Java Virtual Machine Java虚拟机) 可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式, 它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令. 让具体平台如window运行这些Java程序. JRE(Java Runtime Environment Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等, 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即

认识JDK、JRE、JVM

JDK.JRE.JVM之间的关系: 首先看看JDK与JRE的区别与联系,如下图所示: 由图可知: JDK = JRE + Tools&Tool APIs JDK的核心是Java SE API.JavaSE API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能.Java SE API包括一些重要的语言结构以及基本图形,网络和文件I/O.我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础.当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我

JDK,JRE,JVM的区别与联系

很多朋友跟我一样,已经使用Java开发很久了,可是对JDK,JRE,JVM这三者的区别与联系一直都是模模糊糊的,下面我们来总结一下. JDK Java Development ToolKit(Java开发工具包).JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb)和Java基础类库(即Java API包括rt.jar).最流行的JDK是sun公司发布的JDK,除了sun之外,还有好多公司和组织都

jdk、jre与jvm的区别与联系

为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk.jre与jvm的区别与联系以供交流参考. 首先来说一下JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API )