课时3: Java 可移植性
摘要:本次分享的主题是 Java 可移植性。
Java 语言的最大特点之一在于其对可移植性的支持。所谓可移植性指的是同一个程序可以在不同的操作系统之间任意进行部署,从而减少了开发的难度。例如,假设有一款产品需要在 Windows 、 Linux 和 Unix 等多个平台上运行,很麻烦,但如果使用 Java ,这个问题将得到极大的简化。 Java 实现可移植性的关键在于 Java 虚拟机( JVM )。 Java 虚拟机是一种通过软件或硬件模拟的计算机,所有 Java 程序只要有 Java 虚拟机的支持就可以实现程序的执行。不同的操作系统上有不同版本的 Java 虚拟机,这样就可以实现移植性。
接下来,我们简单看一下 Java 的运行机制。
计算机编程语言主要分为两种类型:编译型和解释型。编译型语言如C 语言,源代码经过编译后会生成可执行文件,双击直接运行即可。解释型语言如 ASP ,源代码可以直接解释执行,就可以正常解释。。Java 则结合了这两种方式: Java 源代码首先被编译成字节码文件,这是编译过程;然后字节码文件通过 Java 虚拟机解释执行,这是解释过程。
Java 程序的运行流程包括三个部分:源文件、字节码和机器码指令。
所有 Java 程序的解释都要求放在 Java 虚拟机负上处理。
以上是对 Java 虚拟机的解释。在一台计算机上由软件或硬件模拟机计算机。 Java 虚拟机(JVM)读取并处理经编译过的平台无关的字节码 class 文件。所有 Java 源代码都需要经过编译后才能使用,但编译后的程序代码并不绑定于特定的操作系统,而是一种通用性的程序代码。
这种通用性的代码由 Java 虚拟机识别和执行。例如,即使在 Windows 上编译的 Java 程序,也不会与 Windows 系统绑定, windows 只能作为所谓的母体存在。 Java 编译器针对 Java 虚拟机产生 class 文件,因此是独立于平台的。
Java 解释器负责将 Java 虚拟机的代码在特定平台上运行。它只认 JVM 然后由 JVM 去适应不同的操作系统。然而,由于 Java 程序并不是直接运行在操作系统上,而是通过 Java 虚拟机执行,这可能会导致程序运行速度较慢。早期这确实是一个问题,但后来随着硬件技术的飞速发展,这一问题已经得到了显著改善。
但是, Java 虚拟机的调优仍然是一个重要的课题,因为 Java 虚拟机是运行在操作系统上的软件程序代码。现在的重点不再是由于内置程序执行导致的性能下降,而是如何让 Java 虚拟机充分发挥操作系统的性能,这才是现在要考虑的问题。
因为Java在整个发展过程中,它的整个的语言的组织上已经足够完善了。