首页 技术 正文
技术 2022年11月19日
0 收藏 486 点赞 4,076 浏览 2033 个字

什么是JDK、JRE、JVM?

大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要为我们写的Java程序配备一名翻译官 —– 编译环境,将Java程序翻译成电脑可以识别的程序,C或者汇编。

所以我们在安装配置Java运行环境的时候,就把这个翻译官给添加进去了,就是我们的JDK

那么程序在运行的时候,整个的流程是这样的:

  1. 书写Java源程序(.java)

  2. JDK将源程序编译成字节码文件(.java –> .class)

  3. JRE(运行环境)将字节码进行解释,并执行命令

  4. 字节码文件(.class)中的指令变为对应操作系统的机器码

  5. 操作系统执行命令

整个的JDK构成如下图所示:

那么,最下面的JVM是干嘛的?

java虚拟机(Java Virtual Machine,简称JVM),即java虚拟机,由上面的图示可以知道,JVM是整个java架构当中最为底层的存在,它直接与操作系统进行对接,为 java运行时的环境制定规则,是一种面向计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar:rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包),Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

那么,包含JVM的JRE又是干嘛的?

Java运行环境(Java Runtime Environment,简称JRE)是指运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

它包括两部分:java运行环境(JavaRuntimeEnvironment)和java插件运行环境(JavaPlug-inJavaRuntimeEnvironment),是一个可以在其上运行、 测试和传输应用程序的Java平台。

由上面的图示可以看得出来,JRE包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE中不仅存在着JVM,还有着lang and util base librariesOther Base Libraries等各种基础工具类,以及JDBCIDLRMI等底层的数据接口,还有一些用户封装的接口开发工具,如SwingJava 2D 等。这些各种各样的工具和基础接口组成了JAVA运行时的环境。

JRE需要辅 助软件——JavaPlug-in——以便在浏览器中运行applet.J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK.在JDK中附带有JRE.注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK.

知道了JVM、JRE,那么我们安装的JDK是干什么用的?

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的 JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket, 还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

JDK一共有三种版本:

  • SE(J2SE):standard edition,标准版,最通用的一个版本。
  • EE(J2EE):enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序。
  • ME(J2ME):micro edtion,主要用于移动设备、嵌入式设备。

JDK的7个主要应用程序:

  1. Javac:Java编译器,将Java源代码转换成字节码。
  2. Java:Java解释器,直接从类文件执行Java应用程序字节代码。
  3. appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
  4. Javadoc:根据Java源码及说明语句生成HTML文档。
  5. Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。
  6. Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
  7. Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,040
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,526
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,373
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,154
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,787
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,869