java运行机制
- 引入
- 高级语言的运行机制
- 编译型语言
- 解释型语言
- java程序的运行机制
- 跨平台的原理
- 初识jvm
- JDK、JRE、JVM
- 环境变量
- Path
- Classpath
引入
- java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征;因为java程序要经过先编译,后解释两个步骤。
高级语言的运行机制
- 计算机高级语言按程序的执行方式可以分为编译型和解释型两种。
编译型语言
使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数)并编译。
- 编译过程:把可执行的机器码包装成该平台所能识别的特定的可执行性程序的格式
- 有些程序在编译后,还会链接其他好的代码,以达到复用。
- 因为编译能一次生成特定的机器码,所以可以脱离开发环境独立运行,而且运行效率较高,但无法移植。
- 总结:一次性翻译 成 机器码,并编译
解释型语言
使用专门的解释器对源程序逐行解释成特定平台的机器码并立刻执行。
- 每次执行程序都要编译一次,所以效率较低,并且不能脱离解释器独立运行。
- 跨平台比较容易。
- 总结:逐行解析 成 机器码,并执行
java程序的运行机制
java语言的程序要编译,但不会生成特定平台的机器码,而是生成与平台无关的字节码(*.class),然后必须使用Java解释器(JVM)解析为机器码,由操作系统执行。
跨平台的原理
- java的.class文件可以在任意的操作系统上运行
- 因为不同的操作系统需要安装对应的jvm,用于运行.class字节码文件
- 注意:java语言是跨平台的,jvm不是,需要独立安装
初识jvm
- jvm是一个抽象的计算机,它具有指令集 并 使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器
- jvm虚拟机的规范
- 指令集
- 寄存器
- 类文件的格式
- 栈
- 垃圾回收堆
- 存储区
JDK、JRE、JVM
- JDK(Java Development Kit) = JRE(Java Runtime Environment) + Tools(编译器等工具)
- JRE(Java Runtime Environment) = JVM(Java Virtual machine) + Java library(运行类库(Java API))
- JDK > JRE > JVM
环境变量
Path
- 让操作系统在任意地方都可以直接访问,设置在Path路径下的文件
Classpath
- 让Java解析器区指定的路径下寻找java类并执行
- jdk1.5后可以不用设置
- jdk1.4以及之前版本之所以需要配置classpath,是因为JRE不会在当前路径下搜索java类