Java 版 (精华区)
发信人: robert (默菲), 信区: Java
标 题: <copy> Java语言白皮书(健壮性)
发信站: 紫丁香 (Mon Sep 8 15:25:30 1997)
健壮
Java的目标是要协助发展者建立各方面都必须可靠的程序。Java强调在设计
初期即检查可能存在的问题,其后则执行动态(runtime)检查,并排除容易
出现错误的条件。
强类型(strongly typed)语言例如C 的优点是允许在编译时进行深入的检查,
以便提前发现错误。不幸的是,C 承袭了C在编译检查(compile-timechecking)
时的一些漏洞;C的检查较为松散,特别是在方法/过程声明方面。我们在Java
中要求声明,但并不支持C风格的隐性声明。
链结器(linker)了解类型系统并重复执行许多已由编译器完成的类型检查,以
避免出现版本不匹配问题。
Java与C/C 之间最大的不同点之一在于Java拥有一种指针(pointer)模型,能排
除发生内存被覆盖和毁损数据之可能性。Java不采用指针算术法,而是提供真正
的阵列。这允许程序执行下标检查;再者,它也不可能发生借由对象类型转换将
一个任意整数转成指针的情形。
『阿基米得设计师的应用程序在C执行时基本上相当快速。不过他们的软件开发
日程一再落后,因为总有清理不完的小错误逃过他们的检查。他们面对许多麻烦,
包括内存分配失败、版本不一致、接口不匹配等。C让他们能在程序码中增加一些
巧妙的设计,然而却必须因此付出时间代价以求确保程序品质。由于错误清不干净,
因此他们的软件推出第一版之后就得忙着写修补程序。』
Java虽不能排除品质确认问题,不过它让这道程序变得简单许多。
许多动态语言例如Lisp、TCL与Smalltalk等,通常被用来制作原型程序(prototyping)。
它们在这方面成功的理由是因为它们都非常健壮(robust),让程序设计师不再怕处理
内存问题,因为他们不须担心内存失败。Java即拥有这项特性。Java程序员相对地可以
不害怕处理内存问题,因为在Java中不存在指针,Java程序不可能意外覆盖一片内存缓
冲区的末尾。Java程序也不可能非法访问内存,但这些在C或C 中都有可能发生。
动态语言适合开发原型程序发展的理由之一,就是它们不会在发展初期就要求你拟定
明确的决策。Java刚好相反,它强迫你明确地做选择。这些选择伴随许多辅助:你可以
编写方法调用(method invocations),而如果你有某些错误的地方,你将会在编译时获得
通知,而不须担心方法调用上的错误。
--
※ 来源:.武汉白云黄鹤站 s1000e.whnet.edu.cn.[FROM: 202.114.6.166]
--
_ _
d***v***b
i**I*love*i
q**BBS**p
q***p
xixi....v......robert (12:19):Hello, nice to meet you again! :) (R 回讯息)
※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: 202.118.226.79]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.302毫秒