本文是介绍给打算学习java或者正准备学习的人,如果你是一个老鸟,请路过。
Java的诞生
在Java诞生之前已经出现了许多优秀的编程语言,如大家所熟悉的C语言和C++语言等,那么是什么原因导致了Java的诞生呢?Java语言相对于其他语言来说到底又有着怎样的特殊优势呢?
Java语言相对于其他语言的最大优势就是所谓的平台无关性,即跨平台性,这也是Java语言最初风靡全球的主要原因。无论哪种变编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里所指的平台是由操作系统(OS)和处理器(CPU)所构成。与平台无关是指软件的运行不因操作系统、处理器的变化导致发生无法运行或者出现运行错误。
平台最终识别并且执行的是一种由0和1组成的序列代码,我们称之为机器指令。相同的CPU和不同的操作系统所形成的平台的机器指令可能也是不同的,因此,每种平台都会形成自己独特的机器指令。例如,某个平台可能用8位序列代码10001111表示一次加法操作,以10100000表示一次减法操作,而另外一个平台可能用8位序列代码10101010表示一次加法操作,以10010011表示一次减法操作。
这也就是导致了我们用c语言和c++开发的程序,在不同的平台上面,可能会出现无法运行,或运行出错的情况。
c/c++
基于Windows操作系统和CPU运行的,不保证能运行unix操作系统和CPU
Java
Java语言和其他语言相比,最大的优势就是它的平台无关性,这是因为Java可以在平台之上再提供一个Java运行环境,该Java运行环境由Java虚拟机(JVM)、类库以及一些核心文件组成。Java虚拟机的核心是所谓的字节码指令,即可以被Java虚拟机直接识别、执行的一种由0和1组成的序列代码。字节码并不是机器指令,因为它不和特定的平台相关,不能被任何平台直接识别和执行。Java针对不同平台提供的Java虚拟机的字节码指令都是相同的,如所有的虚拟机都将11110000识别、执行为加法操作。
这两种不同的平台上面,都搭建了Java运行环境,并且我们的Java运行环境用的是同一套字节码指令,所以我们这里的字节码自然也能够运行在平台A,B。这就是Java的平台无关性。