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三者的区别与联系相关推荐

  1. Java三大版本及 JVM JDK JRE 及 SDK API

    目录 1.三大版本 2. JDK JRE JVM 3. SDK API 1.三大版本 JavaSE: 标准版,整个Java的基础及核心,主要用于开发桌面程序及控制台程序. JavaME: 移动版,基本 ...

  2. JVM JDK JRE JSE的简单介绍

    java是面向对象编程,一切皆对象.这个观念要以后慢慢才能了解,无论怎么样讲都是初学者理解不了的.所以还需要多多练习. C语言是面向过程编程的.所以没有"类"的概念,而java的类 ...

  3. JVM/JDK/JRE/IDE—区别

    1..JVM -- java virtual machine        JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的 ...

  4. Java中JVM、JRE和JDK三者有什么区别和联系?

    Java 语言的开发运行,离不开 Java 语言的运行环境 JRE.没有 JRE 的支持,Java 语言便无法运行.当然,如果还想编译 Java 程序,小项目开发的话,JRE 是明显不够了,这时候就需 ...

  5. Java教程:Java中JVM、JRE和JDK三者有什么区别和联系?

    本篇文章由 泉州SEO www.234yp.com 整理发布,Java教程 www.234yp.com/Article/198121.html 谢谢合作! Java教程任何语言或者软件的运行都需要环境 ...

  6. JDK,JRE,JVM区别与联系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  7. AJPFX关于JDK,JRE,JVM的区别与联系

    很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...

  8. JDK, JRE和JVM的区别与联系

    #####JDK: java development kit, java开发工具包,针对开发者,里面主要包含了jre, jvm, jdk源码包,以及bin文件夹下用于开发,编译运行的一些指令器. ## ...

  9. JDK, JRE 和JVM的区别

    2019独角兽企业重金招聘Python工程师标准>>> Java 开发工具包 (JDK) Java开发工具包是Java环境的核心组件,并提供编译.调试和运行一个Java程序所需的所有 ...

最新文章

  1. 整理收集49条JQuery代码小结
  2. Java项目:前台预定+后台管理酒店管理系统(java+SSM+jsp+mysql+maven)
  3. Android Opengl
  4. MPB:林科院袁志林组-利用acdSf3/acdSr4引物快速鉴定产ACC脱氨酶细菌
  5. Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
  6. Java Hibernate模板 学习总结
  7. python 选择排序算法
  8. 零基础学习Java,全方位知识点总结!
  9. git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
  10. contenteditable元素的placeholder输入提示语设置
  11. CLR运行时细节 - 继承多态的实现
  12. 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
  13. 多线程:生产者消费者问题
  14. ACR Code Pacs
  15. (转) intellij idea部署web项目时的位置(Tomcat)
  16. 5G(5)---7个方面读懂5G标准
  17. 如何在私有链实现分叉
  18. Android版式– LinearLayout,RelativeLayout
  19. HTML实现复制功能
  20. dos盘启动计算机,u盘制作dos启动盘方法

热门文章

  1. 带字符串空格的转16进制
  2. Python编程:partial偏函数
  3. 你是不是也被“羊了个羊”PUA了?
  4. 为什么互联网公司不欢迎中年人?
  5. php 发邮件失败,phpmailer发送邮件失败
  6. python代码转成exe可执行文件(pyinstaller)
  7. vivo手机面部识别动画(取消面部识别动画方法)
  8. CCNP350-401学习笔记(151-200题)
  9. JavaScript实现“打地鼠”游戏开发(3)——锤子的显示及游戏音效的添加(基于H5+CSS3+JS+jQuery实现)
  10. java集合Collection,ArrayList,常见方法及演示。