第一节:Java的诞生
1.Java诞生的原因
在Java诞生之前有过许多优秀的语言,比如C/C++语言等,但无论哪种编程语言都需要经过操作系统(OS)和处理器(CPU)所构成。对不同的操作系统和相同处理器编译所产生的序列代码是不相同的(比如在A系统上编译、连接加法的序列代码为1000 1111,在B系统上编译、连接的加法序列代码为1010 1010)
2.C/C++程序依赖平台
当我们在使用C/C++语言时,用C/C++语言编写的程序可能因为操作系统的变化、处理器的升级导致程序出现错误无法运行。
C/C++语言提供编译器对C/C++源程序进行编译时,将针对当前C/C++源程序所在的特定平台进行编译、连接然后生成机械指令,即根据当前的机器指令生成机器码文件(可执行文件)。这样一来就无法保证C++编译器所产生的可执行文件在所有的平台上都能正确的运行,因为不同的平台可能具有不同的机器指令。如果更换了平台,可能需要修改源程序,并针对新的平台重新编译源程序。
3.Java不依赖平台
与其他的语言相比,Java不依赖平台,这是因为Java在平台之上提供了一个Java的运行环境(JRE->Java Runtime Environment),Java运行环境是由Java虚拟机(JVM->Java Virtual Machine)、库类以及其他的核心文件组成的。
Java虚拟机的核心是字节码指令,可以被Java虚拟机直接识别、执行一种由0和1组成的序列代码。字节码不能被任何平台直接识别,在不同的平台上,Java虚拟机提供的字节码都是相同。