第七章主要讲程序在怎样的环境下运行。一般来说,应用程序的运行环境是指操作系统的类型以及硬件(CPU、内存等)的类型和性能指标。
运行环境=操作系统+硬件
每一个应用程序都有其对应的运行环境。程序的运行环境是通过操作系统和硬件来表示的,也就是说,操作系统和硬件决定了程序的运行环境。一台计算机中可以安装多个操作系统,例如,在PC机中,不仅可以安装Windows操作系统还可以安装Linux操作系统。在将硬件作为程序运行环境考虑时,CPU的类型非常重要。
计算机的硬件并不能只有CPU,还有用来存储程序指令和数据的内存,通过I/O(输入、输出)连接(负责将计算机主机与外部设备连接起来的控制芯片)的键盘、显示器、硬盘、打印机等外部设备。在不同的计算机中,这些外部设备的访问方式也不同。
每种操作系统的API(应用程序接口)都是不同的。在PC机中,除Windows外,还可以安装Ubuntu、RHEL、等Linux发行版(是指将Linux内核(操作系统的核心部分)与各种软件捆绑打包所组成的一个可以直接使用的操作系统)。当然,应用程序也需要根据各种不同的操作系统来提供相应的版本。假如说CPU类型的差异代表机器语言的差异,那么操作系统的差异来代表应用程序向操作系统发出请求方式的差异。应用程序向操作系统发出请求的方式是由API来决定的。WINDOWS和linux的API提供了可被任意应用程序使用的函数集合。API提供了键盘输入,鼠标输入,显示器输入,文件输入|输出等与外部设备之间输入|输出的功能。
在任何地方都能提供相同运行环境的JAVA虚拟机。不将源代码编译为本机代码,而是一种中间代码,就可以提供不依赖特定操作系统和硬件的运行环境了,JAVA就是使用这种方法。在JAVA中这个词有两个含义,一个是JAVA编程语言,另一个是JAVA程序运行环境。和其他编程语言一样,用JAVA编写的源代码也需要经过编译才能运行,但是编译后生成的并不是针对特定CPU的本机代码,而是一种称为字节码的代码字。字节码的运行环境成为JAVA虚拟机,JAVA虚拟机将会JAVA自己逐一转化为本机代码来执行。从操作系统的角度来看,JAVA虚拟机也是一种应用程序,但从JAVA应用程序的角度来看,JAVA虚拟机就是其运行环境,也就是操作系统加硬件的结合体。