Java从初学到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Java语言与Java平台

通常所说的Java技术,既可以指Java程序设计语言,又可以指Java平台,在Java体系中,用“Java”一词通称。所以当程序员们在谈论“Java”时,会根据语义的环境来判断,对方指的是Java语言还是Java平台。本节将帮助读者理解Java语言和Java平台。

1.2.1 Java程序设计语言

Java程序设计语言是一种面向对象的高级语言。在Java程序设计语言中,所有的源代码首先被写成以.java扩展名结尾的纯文本文件。然后这些源文件被javac编译器编译为.class文件。一个.class文件不包含本地处理器的代码,而是包含字节码(bytecodes)——Java虚拟机(Java VM)的机器语言。然后Java启动工具在Java虚拟机的一个实例上运行应用程序。

如图1-1所示,MyProgram.java是使用Java语言编写的一个纯文本形式的Java源文件,使用Java编译器将其编译为包含字节码的MyProgram.class二进制文件。此时的MyProgram.class不含机器的本地码,能部署到任意的平台上,然后由所在平台的JVM将其翻译为本地代码执行。

图1-1 Java软件开发过程

因为在许多不同的操作系统上都有可用的Java VM,所以同样的.class文件可以运行在微软Windows、Solaris操作系统(Solaris OS)、Linux或者Mac OS上。一些虚拟机,如Java HotSpot虚拟机,在运行时还执行额外的步骤,提升应用程序的性能。通过虚拟机,同一应用程序可以运行在不同的操作平台上,如图1-2所示。

图1-2 通过Java VM,同一应用程序可以运行在不同的平台上

1.2.2 Java平台

平台指的是一个程序运行所处的硬件和软件环境。前面提及了一些最流行的平台,如微软Windows、Solaris OS、Linux和Mac OS等。大多数平台可以被描述为一个操作系统和其基础硬件的组合体。Java平台不同于大多数的其他平台,它是一个纯软件平台,运行在其他基于硬件的平台的顶层,如图1-3所示,Java平台有两个组成部分。

图1-3 Java平台

Java虚拟机。

Java应用程序设计接口(API)。

Java虚拟机是Java平台的基础,被部署在各种基于硬件的平台上。而API是一个做好的现成软件组件的大集合,这些做好的现成软件组件提供许多有用的功能。它们被组织为相关类和接口的库,这些库就是众所周知的“包”。

作为一个平台独立的环境,一般认为,Java平台相比本地代码有一点慢。然而,编译器和虚拟机技术的进步使得其与本地代码性能上已经非常接近。

说明

Java虚拟机和JVM,都代表一个用于Java平台的虚拟机器。