Java9版 Java程序设计:第0章 绪论(Introduction)( 四 )


Java9版  Java程序设计:第0章 绪论(Introduction)

文章插图
在哲学上,新事物的诞生与发展是前进性与曲折性的统一,前途是光明的道路是曲折的,Java语言的发展史正好说明了这一规律 。
0.7 Java程序运行机制( of Java ) 0.7.1 高级语言的运行机制
计算机高级语言编写的程序不能直接被计算机识别,须经过转换翻译成机器可以直接执行的二进制代码,才能被执行 。高级语言按转换执行方式可可以分为编译型和解释型两类 。
Java9版  Java程序设计:第0章 绪论(Introduction)

文章插图
编译型语言的执行过程类似于生活中的文章翻译过程,首先扫描整个源代码进行语法语义理解,然后将源程序整体“翻译”成可以被机器执行的二进制目标代码(机器语言),最后将该目标代码通过连接组装成当前计算机硬件可以识别的可执行程序格式 。这个过程称为编译() 。也就是说,编译型语言一次性将源程序编译成特定平台的可执行文件,只“翻译”一次,可执行文件来说可以直接在特定机器上运行,所以运行效率较高 。但是该可执行文件不能跨平台执行 。常见的、C语言、C++等高级语言都是编译型语言 。
解释型语言的执行过程类似于生活中的自然语言“现场翻译”,使用专门的解释器对源程序进行逐行读取,读取一行、翻译一行、执行一行 。也就是说解释型语言通常不对源程序进行进行整体“翻译” 。由于解释型语言程序每次执行时,都要经过一次“翻译”,所以运行效率相对较低 。但解释型语言有一个特点,只需要在一个特定平台上提供对应的解释器,就可以对源程序进行“翻译”运行,每个特定的平台编译器只负责将源程序翻译成本地的机器码 。那么解释型语言相对编译型语言,容易实现程序跨平台性 。比如、Ruby、等 。
0.7.2 Java虚拟机(Java)
Java语言的特点很多,最大的特点就是跨平台性,就是Java的程序不需要经过修改可以运行在多个操作系统平台上 。我们知道不同的计算机硬件和不同的操作系统,差异性很大,Java跨平台性是怎么实现的呢?这就需要对虚拟计算机进一步扩展为Java虚拟机JVM(Java) 。
JDK是Java开发工具包,JDK包含了JRE(Java,Java运行时环境),JRE中又包含JVM(Java,Java虚拟机)软件 。
在裸机上安装操作系统,这是计算机的第一次扩展,得到虚拟计算机;在虚拟计算机上安装JDK或JRE,计算机第二次扩展得到Java虚拟机JVM(运行JVM软件的虚拟计算机系统) 。原来虚拟机的功能得到扩展,可以执行Java命令、运行Java应用软件 。裸机、虚拟机和JVM之间的关系如图0.7所示 。Java虚拟机屏蔽了虚拟计算机(比如系统计算机和Linux系统计算机)的差异性,提供统一的Java编译技术 。在JVM层次,针对Java语言而言,所有的计算机都是相同的,具有一般机器的特性 。
但是JVM本身不是跨平台的,一般由C/C++语言编写,Java提供了不同操作系统下的JDK和JRE版本(内含JVM),常见的有Linux版、Mac OS版、版和版 。
Java9版  Java程序设计:第0章 绪论(Introduction)

文章插图
Java虚拟机(JVM)是本章重要概念 。
可以把人的肉体理解为裸机,没有穿衣服的人只能呆在自己的房间里待着,不能出门,否则就是裸奔;把衣服理解为操作系统,穿了衣服的人就是安装了操作系统的计算机,也就成了虚拟机,衣服屏蔽了人肉体上的一些细节,扩展了人的功能,比如可以出门工作或购物等等 。
0.7.3 运行机制( )
Java语言是一类特殊的高级语言,同时具有编译型和解释型语言的特性,因此Java源程序需要先经过编译过程,后经过解释过程 。源程序,是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件 。