导读目录
- 1.Java程序运行机制
参考书籍
- 《疯狂Java讲义》(第3版) 李刚 著
- 《深入理解Java虚拟机》周志明 著
----------------* 我是开始分割线 _* -------------------
Java语言是一种特殊的高级语言,它具有** 解释语言** 和** 编译型语言** 的特征。因为Java程序是先经过** 编译,再经过 解释执行** 两个步骤。因此它不算是纯粹的解释语言或编译语言。
具体过程如下:
1.编译源码:Java源码首先要经过 Java编译器 编译成字节码(即 .class 文件),这种文件是与特定平台(操作系统)不相关。因此,此时 .class 文件还不是可执行的机器码。
2.解释执行字节码:这部分的工作由 JVM(Java虚拟机)完成。可以理解为 JVM 是可以运行字节码文件的虚拟计算机。JVM 向上(即面对字节码文件)提供了相同的接口,向下(即面对特定的平台)提供了不同的接口,这是与特定平台相关的。
JVM 实际上是提供了** Java 源码 和 特定平台 **之间的转换功能,正是如此,Java才具有跨平台的特性。
补充:
JVM 是一个抽象的计算机,但它和实际的计算机一样,拥有自己的指令集、寄存器、栈、垃圾回收机制等
JDK(Java SE Development Kit),即 Java 标准版开发包,是 sun 公司提供的一套用于开发Java 应用程序的开发包,它提供了编译、运行 Java 程序所需要的各种工具和资源(如 Java 编译器,JRE(包含JVM),Java 核心类库等)
一般而言,如果只是运行 Java 程序,只需安装 JRE 即可。但是如果只装 JVM 还是不够的,因执行字节码文件还需要其他资源,如类加载器,核心类库等
如果需要开发 Java 程序是需要安装 JDK,当然也就包含了 JRE 。此时既可以开发 Java 程序,又可以运行 Java 程序。
关于JVM, 自 1996 年初 sun 公司发布的 JDK1.0 中包含的 Sun Classic VM 到今天的众多的JVM,其中 Sun HotSpot VM 是目前使用最广的虚拟机。期间,Java虚拟机一直经历着不断的革新与完善,如内存管理、编译优化、垃圾回收机制的优化等。
----------------* 我是结束分割线 _* -------------------