【java基础】Java 虚拟机及 Java 的跨平台原理

来源:互联网 发布:mac cad2014 打印pdf 编辑:程序博客网 时间:2024/05/18 01:56
  Java 虚拟机(JVM)可运行 Java 字节码的假想计算机,Java 的跨平台性是相对于其他编程语言而言的,我们这里就用 C 语言的编程与执行过程来同 Java 的编程与执行过程进行对比说明。
  同 C 语言编程一样, 我们首先也要编写 Java 源程序, 然后由 Java 编译程序将 Java 源程序编译为 JVM 可执行的代码,即 Java 字节码。Java 源程序编译后生成的字节码文件就相当于 C 源程序编译后的 Windows 上的 exe 可执行文件, JVM 虚拟机的作用类似 Windows 操作系统。在 Windows上运行的是 exe 文件,在 JVM 上运行的是 Java 字节码文件,也就是扩展名为.class 的文件。
    Windows 执行 exe 可执行文件的过程, 就从 exe 文件中取出一条条的计算机指令, 交给 CPU去解释执行。JVM 执行 Java 字节码文件的过程,也是 JVM 虚拟机从 Java 字节码文件中取出一条条的字节码指令交给 “CPU” 去执行。 硬件与软件是可以相互转化的, 我们可以用霸卡硬件解码VCD 数据,也可以用超级解霸软件解码 VCD 数据。执行 Java 字节码的“CPU”可以是硬件,也可以是某个系统上运行的一个软件,这个软件称为 Java 字节码解释程序(也就是 Java 虚拟机) 。
  可见, 只要实现了特定平台下的解释器程序, Java 字节码就能通过解释器程序在该平台下运行,这是 Java 跨平台的根本。当前,并不在所有的平台下都有相应的 Java 解释器程序,这也是 Java 并不在所有的平台下都能运行的原因,它只能在已实现了 Java 解释器程序的平台下运行。
  顺便来一句: Java 兼顾解释性与编译性语言的特点, .java 源文件转换成.class 字节码文件的过程是编译型的, .class 在操作系统上运行的过程则是解释型的, Java 虚拟机充当了解释器的作用。关于解释型和编译型的区别就不在这里详细叙述了,不能理解的读者可以自己去查阅相关资料,这并不影响我们学习 Java 的效果。


0 0
原创粉丝点击