Java语言白皮书 |
您所在的位置:网站首页 › tron白皮书 › Java语言白皮书 |
Java程序语言和环境的设计目的是为了解决现代 程序设计上的问题。它最初是一项较大规模『消 费者电子产品先进软件发展专案』的一部份,该 专案目的是为了发展小型、可靠、可移植、分布 式、实时的嵌入式系统。我们在专案一开始原决 定采用C++,不过碰到一些问题。最初,那只 是编译器技术方面的问题,可是后来我们遭遇更 多困难,且发现最好的解决方式就是更换编程语 言。
Java
Java是一种简单、面向对象、分布式、解释、健 壮、安全、结构中立、可移植、高效能、多线程 、动态的语言。
描述系统特性的方法之一就是把一堆高效能的术 语摆在一起。一如上述,我们也使用一组标准的 术语来描述Java。以下我们将解释这些术语在 Java上代表的意义,以及我们试图解决的问题是 哪些。
『首先,我们要介绍阿基米得公司(Archimedes Inc.);它是我们为了方便说明Java功能而虚构的 一家软件公司。阿基米得从事有关基本物理教学 用途的软件开发,其软体设计目的是要与使用者 产生交互关系,不仅提供一如传统教科书的文字 与插图,而且也包括一组软件实验工作室,供使 用者进行实验和模拟真实世界的物理行为。例 如,它最基本的一项实验允许学生组成杠杆和滑 轮,然后观察它们的物理作用。在以下的论述 中,我们将借由这些实验和阿基米得设计师的旁 白,以说明Java语言概念。』
简单
我们想建立一种真正简单的系统,它允许使用者 轻易地设计程序而不需要像现今的标准程序一样 接受深奥的训练。目前大多数程序设计师都采用 C语言,而面向对象程序设计师则大多使用C++。 因此,即使我们发现C++并非适合我们,我 们在Java的设计上还是尽可能让它与C++相近, 以确保系统更容易被理解。
Java删除许多极少被使用、不容易理解和令人混淆 的C++功能,这些功能在我们的使用经验中只能 带来麻烦而非效益。删除的功能主要包括运算符 重载(operator overloading)、多重继承(inheritance) 以及广泛的自动强迫同型(automatic coercions); 重载是指以一个辨识元参照多重项目,Java语言 也提供重载函数,不过它重载的对象是方法(method)而 非变量或运算符。
我们增加自动内存垃圾收集(auto garbage collection) 功能,因此简化Java程序工作,不过同时也让系统变得稍复 杂一些。储存管理(storage management)是使C与C++ 应用程序变得复杂的常见的一项原因,即关于内存的 分配与释放。Java语言的自动垃圾收集功能(周期性地 释放未被使用的内存)不仅简化了程序设计工作,而且 能大幅度减少小错误(bugs)数量。
『阿基米得设计师们原想花时间思考杠杆与滑轮原 理,但是后来却发现大部份时间都浪费在世俗的 程序工作上。事实上,他们的核心专业知识在于 教学而非程序设计。这些程序工作中最复杂的部 份就是从他们那二万行程序码中,找出那些地方 浪费了内存。』
确保Java『简单化』的另一特性在于『小而单 纯』。Java的目标之一是要协助开发能独立地在小 型机器上顺利执行的软件。Java的基本解释器 (interpreter)和对象类(class)支援约占4OKB,而 若增加基本的标准程序库和线程(thread)支援 (它 实际上是一整自含式的微核心) 需增加175K。体积 小对于在嵌入式的系统中的使用是很重要的,并因 此Java可以通过网络轻易下载。
面向对象
这是在业界被过度渲染的术语之一。不过,面向 对象是一项很强的设计功能,因为它促成明确的 接口定义& |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |