Java运行机制与JVMJREJDK--是什么
Posted 江西昊仔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java运行机制与JVMJREJDK--是什么相关的知识,希望对你有一定的参考价值。
计算机高级语言类型(主要两种)
- 编译型 (C,C++)
- 解释型 (php,js,py)
Java语言是两种类型的结合。
java的运行机制(三步)
- 首先利用文本编辑器编写Java源程序(后缀名.java),
- 再利用编译器(javac)将源程序编译成字节码文件(后缀名.class),
- 最后利用虚拟机(解释器java)解释执行。
C、C++的运行机制
简略的说java找了一个中介人帮它,避免直接和操作系统打交道。
什么是 JVM?
JVM 是 Java Virtual Machine(Java虚拟机)的缩写。
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,
它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
简单的说:Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这也是实现跨平台的核心机制。
不同的操作系统有不同的虚拟机。
java虚拟机机制屏蔽了底层运行平台的差别,实现了"一次编译,随处运行"。
JVM里面也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
JVM负责将java字节码解释运行,边解释边运行,速度上就会受到一定的影响。
JVM的特点
- 实现跨平台的最核心的部分
- JVM 只关注被编译的 .class 文件,不关心 .java 源文件
- .class 文件会在 JVM 上执行,然后 JVM 会解释(边解释边运行)给操作系统执行
- 有自己的指令集,解释自己的指令集到 CPU 指令集和系统资源的调用
什么是 JRE?
JRE 是 Java Runtime Environment(Java运行环境)的缩写
Java运行环境(Java Runtime Environment,简称JRE)是一个软件,由太阳微系统所研发,
JRE可以让计算机系统运行Java应用程序(Java Application)。
JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)
以及一些标准的类别函数库(Class Library)。
JRE的要点
- 包含 JVM 标准实现及 Java 核心类库,这些是运行 Java 程序的必要组件
- 是 Java 程序的运行环境,并不是一个开发环境,没有包含任何开发工具(如编译器和调试器)
- 是运行基于 Java 语言编写的程序所不可缺少的运行环境,通过它,Java 程序才能正常运行
JRE 是指 java 运行环境。光有 JVM 还不能完成 class 的执行,
因为在解释 class 的时候 JVM 需要调用解释所需要的类库 lib。
(jre 里有运行.class 的 java.exe)。
如果只是要运行Java程序,只需要jre就可以。
什么是 JDK?
JDK 是 Java Development Kit(java开发工具包)的缩写
里面包含了:jre、javac(源码的编译器)、jconsole(监控工具)、jvisualvm(分析工具)等等
JDK目录下的主要几部分:
- bin 最主要的是编译器 (javac.exe、java.exe)
- include java 和 JVM 交互用的头文件
- lib 类库
- jre java 运行环境
- src 类库源码压缩包
在jre目录里有两个文件夹:
- bin:可以认为是jvm
- lib:jvm工作所需要的类库。
总结
- jdk包含jre与jvm,jre包含jvm,jvm是跨平台的核心机制。
- JDK 是用于 java 程序的开发,而 jre 则是只能运行 字节码文件,而没有编译的功能。
- 如果只是要运行Java程序,只需要jre就可以。
- jre 通常非常小,其中包含了jvm。
- 如果要开发Java程序,就需要安装jdk,全套服务都来了。
jvm:是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。
jre:包含java虚拟机、库函数、运行java应用程序所必须的文件
jdk:包含jre,增加编译器和调试器等用于程序开发的文件。
以上是关于Java运行机制与JVMJREJDK--是什么的主要内容,如果未能解决你的问题,请参考以下文章