JDK, JRE 和JVM的区别
2019独角兽企业重金招聘Python工程师标准>>>
Java 开发工具包 (JDK)
Java开发工具包是Java环境的核心组件,并提供编译、调试和运行一个Java程序所需的所有工具,可执行文件和二进制文件。JDK是一个平台特定的软件,有针对Windows,Mac和Unix系统的不同的安装包。可以说JDK是JRE的超集,它包含了JRE的Java编译器,调试器和核心类。目前JDK的版本号是1.7,也被称为Java 7。
Java虚拟机(JVM)
JVM是Java编程语言的核心。当我们运行一个程序时,JVM负责将字节码转换为特定机器代码。JVM也是平台特定的,并提供核心的Java方法,例如内存管理、垃圾回收和安全机制等。JVM 是可定制化的,我们可以通过Java 选项(java options)定制它,比如配置JVM 内存的上下界。JVM之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。这种独立于硬件和操作系统的特性正是Java程序可以一次编写多处执行的原因。
Java运行时环境(JRE)
JRE是JVM的实施实现,它提供了运行Java程序的平台。JRE包含了JVM、Java二进制文件和其它成功执行程序的类文件。JRE不包含任何像Java编译器、调试器之类的开发工具。如果你只是想要执行Java程序,你只需安装JRE即可,没有安装JDK的必要。
JDK, JRE 和JVM的区别
- JDK是用于开发的而JRE是用于运行Java程序的。
- JDK和JRE都包含了JVM,从而使得我们可以运行Java程序。
- JVM是Java编程语言的核心并且具有平台独立性。
即时编译器(JIT)
有时我们会听到JIT这个概念,并说它是JVM的一部分,这让我们很困惑。JIT是JVM的一部分,它可以在同一时间编译类似的字节码来优化将字节码转换为机器特定语言的过程相似的字节码,从而将优化字节码转换为机器特定语言的过程,这样减少转换过程所需要花费的时间。
转载于:https://my.oschina.net/u/142412/blog/176337
JDK, JRE 和JVM的区别相关推荐
- JDK, JRE和JVM的区别与联系
#####JDK: java development kit, java开发工具包,针对开发者,里面主要包含了jre, jvm, jdk源码包,以及bin文件夹下用于开发,编译运行的一些指令器. ## ...
- jdk,jre,jvm的区别以及联系
作为一个 java开发工程师,我做面试题的时候,竟然都答错了jdk,jre,jvm的区别和联系了,真实太菜了.不过吃一堑长一智,多多吸取教训还是比较好的. JVM:java虚拟机,用来编译和运行jav ...
- 一、JDK、JRE、JVM的区别
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...
- JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点
JDK,JRE和JVM 1.JVM Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台. 所谓跨平台性, ...
- 888道Java高级面试题,JDK、JRE与JVM的区别与联系
前言 我在知乎上看到这样一个话题,关于程序员的: 听同学说干码农这行每天都要加班,这样的话,不就没精力做别的事情了.有个师兄做 IT 销售,不太辛苦,生活还算是美滋滋,是真的吗?我也知道社会上干哪一行 ...
- Java中JDK,JRE和JVM之间的关系
初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解就是Java开发工具包,JRE(Java Runtime Envi ...
- Java基础:JDK、JRE、JVM的区别与联系
1. 详细介绍 1.1 JVM – java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.clas ...
- 3.JDK和JRE和JVM的区别
JDK --Java Development Kit --java 开发工具包 JRE --Java Runtime Environment --java运行时环境 JVM --Java Virtua ...
- JDK、JRE、JVM的区别与联系
详细介绍 1.1 JVM - java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类 ...
最新文章
- DH1766线性三路可编程直流电源
- linux运维实战练习-2015年9月13日-9月15日课程作业(练习)安排
- 远程访问CENTOS的MYSQL数据库设置
- js 的正则表达式 部分展示test()方法的验证功能
- IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
- inventory tool for Microsoft Uplates简介
- poj_3468 线段树
- spark安装以及hive on spark和spark on hive 的配置
- 什么是干接点、湿接点、源型、漏型、NPN、PNP
- Qt之QTreeView的简单使用(含源码+注释)
- python 文件路径斜杠变成两道_Python文件操作---正斜杠与反斜杠
- 操作系统——7.虚拟存储技术
- 来电转接点击选择联系人按钮-没有出现联系人
- 简述用决策表设计测试用例的步骤_软件测试(14)--黑盒测试案例设计技术--基于决策表的测试...
- 【UE4】给游戏制作一个简易的小地图
- felix李_和felix相爱相杀的那些年
- java lang arithmetic_java.lang.ArithmeticException: Division undefined
- 基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
- netfilter_queue
- 使用python自动上传apk到蒲公英