JDK

JDK(Java SE Development Kit),Java标准的开发包,提供了编译、运行Java程序所需要的各种工具和资源,包括了Java编译器、Java运行时环境、以及常用的Java类库等。

JRE

JRE(Java Runtime Environment),Java运行时环境,用于解释执行Java的字节码文件。普通用户只需要安装JRE来运行Java程序即可,而作为一名程序员必须安装JDK,来编译、调试程序。

JVM

JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。它是整个Java实现跨平台的核心,负责解释执行字节码文件,是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。 当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。也就是说 JVM是运行Java字节码的虚拟机。 不同平台的JVM是不同的,但是他们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相同的虚拟机,编译后的Java字节码就可以在该平台上运行。

为什么要采用字节码:

在 Java 中,JVM 可以理解的代码就叫做字节码 (即Java源代码经过虚拟机编译器编译后扩展名为的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式, 在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。 所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。

什么是跨平台:

所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。

       实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟 机,该系统就可以运行java程序。

Java 程序从源代码到运行需要三步:

总结

  1. JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。

  2. JDk包含JRE,JDK 和 JRE 中都包含 JVM。

  3. JVM 是 Java 编程语言的核心并且具有平台独立性。

JDK和JRE和JVM的区别相关推荐

  1. jdk,jre,jvm的区别以及联系

    作为一个 java开发工程师,我做面试题的时候,竟然都答错了jdk,jre,jvm的区别和联系了,真实太菜了.不过吃一堑长一智,多多吸取教训还是比较好的. JVM:java虚拟机,用来编译和运行jav ...

  2. 888道Java高级面试题,JDK、JRE与JVM的区别与联系

    前言 我在知乎上看到这样一个话题,关于程序员的: 听同学说干码农这行每天都要加班,这样的话,不就没精力做别的事情了.有个师兄做 IT 销售,不太辛苦,生活还算是美滋滋,是真的吗?我也知道社会上干哪一行 ...

  3. Java基础:JDK、JRE、JVM的区别与联系

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

  4. JDK、JRE、JVM的区别与联系

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

  5. JDK、JRE、JVM的区别及JavaSE、JavaEE和JavaME的区别?

    1.JRE(Java Runtime Environment java运行环境) 包括JAVA虚拟机和JAVA程序所需的核心类库,如果想要运行一个开发好的JAVA程序,计算机中只要安装JRE即可 2. ...

  6. 一、JDK、JRE、JVM的区别

    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...

  7. 3.JDK和JRE和JVM的区别

    JDK --Java Development Kit --java 开发工具包 JRE --Java Runtime Environment --java运行时环境 JVM --Java Virtua ...

  8. JDK、JRE、JVM的区别以及Java的跨平台原理简述

    1)JDK:Java开发工具包,是Java的核心,包括:JRE+编译.运行等命令工具: 2)JRE:Java运行环境,是运行Java程序所必须的环境的集合,包括:JVM+Java系统类库: 3)JVM ...

  9. JDK、JRE与JVM的区别与联系,已拿offer入职

    阿里的人才画像 其实最近两年自己一直在做面试官,也面试过很多优秀的人,心里大概有一个标准,知道什么样的人才是我们想要的人. 但是这个标准我一直都没有仔细的去思考过,刚好最近有时间,我好好的思考了一下, ...

  10. JDK, JRE 和JVM的区别

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

最新文章

  1. Android AlertDialog设置宽度显示不正常的问题
  2. NA-NP-IE系列实验36:扩展ACL
  3. python 读取csv文件生成散点图
  4. 19-7-15学习笔记
  5. JZOJ 5669. 【GDSOI2018模拟4.19】排列
  6. java 弹出下载_java如何实现下载弹出的对话框
  7. Spark on Yarn:任务提交参数配置
  8. 面试官:为什么SpringBoot的 jar 可以直接运行?
  9. 笨方法“学习python笔记之字符串
  10. TensorFlow 教程 --教程--2.4MNIST 进阶
  11. python怎么把数据存在本地_将Python中的数据存储到系统本地的简单方法
  12. python处理json文件_python读取json文件转成excel
  13. ffmpeg drawtext同时添加多行文本
  14. AssetBundle接口详解与优化
  15. windows删除鼠标右键下新建的项目
  16. xocde8打印出:Presenting view controllers on detached view controllers is discouraged SettingViewContro
  17. ARX中非模态对话框
  18. Python “多爱你一点”照片墙
  19. GCC 编译链接命令用法
  20. 一夜狼人杀:千万不要沉默不语,参与游戏聊自己的角色

热门文章

  1. android-应用签名
  2. 大型公建能耗监管系统
  3. 黑客是怎么攻击网站的(网站渗透入侵全部教程)
  4. C++fseek函数
  5. 18650锂电池保护板接线图_锂电池保护板的基础知识及常见不良分析
  6. 高速公路车路协同网络需求研究
  7. 芒果云 在线代码编辑器
  8. 关于3CDaemon的FTP服务端异常
  9. 理解图像处理中的 双线性内插法(图文说明)
  10. 小学数学四年级上册计算机教案,四年级信息技术人教版上册教案