JDK和JRE和JVM的区别
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 程序从源代码到运行需要三步:
总结
JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。
JDk包含JRE,JDK 和 JRE 中都包含 JVM。
JVM 是 Java 编程语言的核心并且具有平台独立性。
JDK和JRE和JVM的区别相关推荐
- jdk,jre,jvm的区别以及联系
作为一个 java开发工程师,我做面试题的时候,竟然都答错了jdk,jre,jvm的区别和联系了,真实太菜了.不过吃一堑长一智,多多吸取教训还是比较好的. JVM:java虚拟机,用来编译和运行jav ...
- 888道Java高级面试题,JDK、JRE与JVM的区别与联系
前言 我在知乎上看到这样一个话题,关于程序员的: 听同学说干码农这行每天都要加班,这样的话,不就没精力做别的事情了.有个师兄做 IT 销售,不太辛苦,生活还算是美滋滋,是真的吗?我也知道社会上干哪一行 ...
- Java基础:JDK、JRE、JVM的区别与联系
1. 详细介绍 1.1 JVM – java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.clas ...
- JDK、JRE、JVM的区别与联系
详细介绍 1.1 JVM - java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类 ...
- JDK、JRE、JVM的区别及JavaSE、JavaEE和JavaME的区别?
1.JRE(Java Runtime Environment java运行环境) 包括JAVA虚拟机和JAVA程序所需的核心类库,如果想要运行一个开发好的JAVA程序,计算机中只要安装JRE即可 2. ...
- 一、JDK、JRE、JVM的区别
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...
- 3.JDK和JRE和JVM的区别
JDK --Java Development Kit --java 开发工具包 JRE --Java Runtime Environment --java运行时环境 JVM --Java Virtua ...
- JDK、JRE、JVM的区别以及Java的跨平台原理简述
1)JDK:Java开发工具包,是Java的核心,包括:JRE+编译.运行等命令工具: 2)JRE:Java运行环境,是运行Java程序所必须的环境的集合,包括:JVM+Java系统类库: 3)JVM ...
- JDK、JRE与JVM的区别与联系,已拿offer入职
阿里的人才画像 其实最近两年自己一直在做面试官,也面试过很多优秀的人,心里大概有一个标准,知道什么样的人才是我们想要的人. 但是这个标准我一直都没有仔细的去思考过,刚好最近有时间,我好好的思考了一下, ...
- JDK, JRE 和JVM的区别
2019独角兽企业重金招聘Python工程师标准>>> Java 开发工具包 (JDK) Java开发工具包是Java环境的核心组件,并提供编译.调试和运行一个Java程序所需的所有 ...
最新文章
- Android AlertDialog设置宽度显示不正常的问题
- NA-NP-IE系列实验36:扩展ACL
- python 读取csv文件生成散点图
- 19-7-15学习笔记
- JZOJ 5669. 【GDSOI2018模拟4.19】排列
- java 弹出下载_java如何实现下载弹出的对话框
- Spark on Yarn:任务提交参数配置
- 面试官:为什么SpringBoot的 jar 可以直接运行?
- 笨方法“学习python笔记之字符串
- TensorFlow 教程 --教程--2.4MNIST 进阶
- python怎么把数据存在本地_将Python中的数据存储到系统本地的简单方法
- python处理json文件_python读取json文件转成excel
- ffmpeg drawtext同时添加多行文本
- AssetBundle接口详解与优化
- windows删除鼠标右键下新建的项目
- xocde8打印出:Presenting view controllers on detached view controllers is discouraged SettingViewContro
- ARX中非模态对话框
- Python “多爱你一点”照片墙
- GCC 编译链接命令用法
- 一夜狼人杀:千万不要沉默不语,参与游戏聊自己的角色