前期问题:程序运行的操作系统可能是Windows,UNIX或Linux,通常在一种操作系统上开发运行的程序在另一种操作系统上就无法运行,需要重新编写。
Java具有平台无关性和可移植性,其程序不需要修改或少量修改就可以在不同操作系统上运行。
主要措施有:java既是编译型语言又是解释型语言,编译成的字节码文件由java虚拟机在不同操作系统上解释执行;java数据类型在任何机器上都是一致的,它不支持特定于具体硬件环境的数据类型,同一数据类型在所有操作系统中占据相同的空间大小
解决策略:源程序编译成字节码文件(拓展名为.class)。这个二进制代码文件与具体操作系统的机器指令无关,其运行必须借助解释执行系统动态翻译成所在操作系统的机器码(由运行环境当中的java虚拟机完成解释执行工作).因此只要对程序进行一次编译,就可在不同的操作系统上运行,即“一次编译,处处执行”。
----->windows
源代码(.java文件)-----编译----->字节码(.class文件)------->解释执行系统---->Unix
------>Linux