JVM、JDK、JRE三者的区别与联系
JVM、JDK、JRE三者的区别与联系
JVM
什么是JVM?
JVM即java虚拟机,可以运行字节码文件,针对不同的操作系统JVM有不同的实现,以实现相同的字节码文件在不同的平台可以得到同一个结果。
java程序运行步骤:
.java文件(源代码)经过JDK的javac编译后生成了.class文件(字节码文件),字节码文件再经过JVM虚拟机生成机器可执行的机器码(在没有引入JIT编译器之前,JVM类加载器首先加载字节码文件,再通过解释器逐行解释运行,速度较慢。引入JIT编译器之后,由于JIT属于运行时编译且在第一次编译后JIT会将字节码对应的机器码保存起来,下次就可以直接使用)。
什么是JDK?
JDK(Java Development Kit),能够创建和编译程序,包含了JRE且含有编译器和工具。
什么是JRE?
JRE是Java运行时环境,它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。
总结:
JVM、JDK、JRE三者由大到小为:JDK > JRE > JVM,JRE = JVM + Java SE标准类库,JDK = JRE + 开发工具集(例如Javac编译工具等)
参考文献:JavaGuide
JVM、JDK、JRE三者的区别与联系相关推荐
- Java三大版本及 JVM JDK JRE 及 SDK API
目录 1.三大版本 2. JDK JRE JVM 3. SDK API 1.三大版本 JavaSE: 标准版,整个Java的基础及核心,主要用于开发桌面程序及控制台程序. JavaME: 移动版,基本 ...
- JVM JDK JRE JSE的简单介绍
java是面向对象编程,一切皆对象.这个观念要以后慢慢才能了解,无论怎么样讲都是初学者理解不了的.所以还需要多多练习. C语言是面向过程编程的.所以没有"类"的概念,而java的类 ...
- JVM/JDK/JRE/IDE—区别
1..JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的 ...
- Java中JVM、JRE和JDK三者有什么区别和联系?
Java 语言的开发运行,离不开 Java 语言的运行环境 JRE.没有 JRE 的支持,Java 语言便无法运行.当然,如果还想编译 Java 程序,小项目开发的话,JRE 是明显不够了,这时候就需 ...
- Java教程:Java中JVM、JRE和JDK三者有什么区别和联系?
本篇文章由 泉州SEO www.234yp.com 整理发布,Java教程 www.234yp.com/Article/198121.html 谢谢合作! Java教程任何语言或者软件的运行都需要环境 ...
- JDK,JRE,JVM区别与联系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- AJPFX关于JDK,JRE,JVM的区别与联系
很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...
- JDK, JRE和JVM的区别与联系
#####JDK: java development kit, java开发工具包,针对开发者,里面主要包含了jre, jvm, jdk源码包,以及bin文件夹下用于开发,编译运行的一些指令器. ## ...
- JDK, JRE 和JVM的区别
2019独角兽企业重金招聘Python工程师标准>>> Java 开发工具包 (JDK) Java开发工具包是Java环境的核心组件,并提供编译.调试和运行一个Java程序所需的所有 ...
最新文章
- 整理收集49条JQuery代码小结
- Java项目:前台预定+后台管理酒店管理系统(java+SSM+jsp+mysql+maven)
- Android Opengl
- MPB:林科院袁志林组-利用acdSf3/acdSr4引物快速鉴定产ACC脱氨酶细菌
- Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
- Java Hibernate模板 学习总结
- python 选择排序算法
- 零基础学习Java,全方位知识点总结!
- git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
- contenteditable元素的placeholder输入提示语设置
- CLR运行时细节 - 继承多态的实现
- 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
- 多线程:生产者消费者问题
- ACR Code Pacs
- (转) intellij idea部署web项目时的位置(Tomcat)
- 5G(5)---7个方面读懂5G标准
- 如何在私有链实现分叉
- Android版式– LinearLayout,RelativeLayout
- HTML实现复制功能
- dos盘启动计算机,u盘制作dos启动盘方法
热门文章
- 带字符串空格的转16进制
- Python编程:partial偏函数
- 你是不是也被“羊了个羊”PUA了?
- 为什么互联网公司不欢迎中年人?
- php 发邮件失败,phpmailer发送邮件失败
- python代码转成exe可执行文件(pyinstaller)
- vivo手机面部识别动画(取消面部识别动画方法)
- CCNP350-401学习笔记(151-200题)
- JavaScript实现“打地鼠”游戏开发(3)——锤子的显示及游戏音效的添加(基于H5+CSS3+JS+jQuery实现)
- java集合Collection,ArrayList,常见方法及演示。