欢迎来到天天文库
浏览记录
ID:5222873
大小:24.00 KB
页数:2页
时间:2017-12-06
《java中静态方法的设计意图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、java中静态类的设计意图是什么静态类型―多数程序员喜欢它或憎恨它。支持者夸耀说静态类型让他们写出更干净更可靠的代码,没有它们则做不到这么好。批评者埋怨说静态类型增加了程序的复杂性。是的,静态类型不是免费午餐;有时候,它们用起来很乏味。然而,如果我们主要关心的是使代码没有错误,那么,总的说来,Java编程还是拥有并使用静态类型好些。为什么?静态类型检查:通过早期错误检测,提高健壮性通过在最佳的时候作所需的检查,提高性能弥补单元测试的缺点我们来更仔细地分析这些原因,并看一看静态类型检查和结对编程(pairprogramming)混用。通过早期检测,提高健壮性静态类型检
2、查能提高程序健壮性。为什么?因为它有助于尽快找到错误―在程序运行前。这里的逻辑舍此无它。错误越早被发现,问题诊断起来就越容易,也就只有越少的数据会被错误的计算毁坏。在程序运行前就找到并诊断错误是理想状态。这个优点使静态类型检查成为编程语言设计中的伟大成功,因为它是少数几种能在程序运行前自动检测程序中的错误的方法,而且它可在可接受的时间内完成这个任务。“可接受的时间”意思是与程序长度呈线性关系的时间(有一个很小的常数系数),而不是其它形式自动检查所要求的呈立方甚至呈指数关系的时间(许多甚至根本不保证完成)。是的,类型系统越强大,编起程序来就越容易(且系统将检测越多的错
3、误)。我不否认Java简单的类型系统留有很多缺憾;它经常阻碍我们,迫使我们用强制转型来绕过。但这种状况正在慢慢改善。SunJSR14编译器在语言中增加了形式有限的泛型(也称为参数化)类型;我们相信它迟早会被加入该语言,因为它目前在Java社区过程中得到了坚定的支持。更高级的语言扩展(例如NextGen)承诺在JSR14提供的增加的表达力上更上一层楼。那是好事,因为在很多环境下NextGen都有助于减少甚至在JSR14中也是需要的一些增加的复杂性。请参阅参考资料找到关于这个问题的更多信息。(除了JSR14链接,还有些关于参数的多态性的文章。)通过减少所需的检查,提高性
4、能在安全的语言中(“安全”的意思是指不允许我们破坏它自己的抽象的语言),对传给方法的参数的类型作各种检查是必需的并一定得完成,对被存取的域的类型的检查也是必需的并一定得完成。如果这些检查不是静态地完成,那么它们必须在运行时完成。进行这些所需的检查是费时的,在运行时进行这些检查的语言,其性能会相应受损。当不变量被静态地检查时,我们不必在运行时检查它,从而加快程序运行。所以,静态类型检查使我们得以写出更健壮更高效的代码。传统上认为编译时静态类型检查是低效的。对于用C/C++之类语言写的大程序来说,在文件间链接各种类型引用是很费时的,因为每次编译时,各种文件必须被合在一起
5、生成一个大的可执行文件。但是Java语言完全避免了这个问题,因为类是分开编译的,在需要时装入到JVM。没有必要把所有的引用文件链接成一个可执行文件―所以在编译时没有相应的放慢。
此文档下载收益归作者所有