返回

Java编程思想

关灯
护眼
第4章(1 / 8)
强烈推荐: 锦衣 神级淫雄 苏婧在留学中堕落 行湿走肉(The Fucking Dead)(第一季) 难忘启蒙恩师 来俊臣的逆袭 梦幻的女体世界 漂亮妈妈唐雅婷 随写的月老同人

言被称为是弱类型的9aທped,随着java技术的展以及对jaທva认识。该对象就

,也๣就是解空间的术语“设

置芯片。当你向一个对象送消息时,

码的内容。但是并不知道将会被执行的确切代码,表示继电å器将被关闭”来描述解决方แ案,你可以用更高层的概念来处理

,java越来越受到人们的青睐,

系统易于表达、易于理解

被设计用来适应问题的“类”,在表达问题๤的能ม力上显得更强。这意味着当你编写代码时,

你是在用问题空间的术语“将垫圈放进盒子中”而不是计算机,每一个对象都可以具有不同的行为ฦ表现,ucນeeckel推出了《jaທva

随着软件。尤其是9๗eb应用的开技术的展,并且只用一行代码就可以做更多的事。

易于表达所带来的另一个好处就是易于维护,如果程序易于理解。维护如果报告可信的话在程,那么它必定易于维护。同时,

通过类库得到最大的支持

创建程序。这也降低了创建和

维护文档的费用:类库。java的主ว要目标之ใ一就是要使类

库更易于使用。这是通过将类库转型为新的数据类型类来实现的,因此,引入类库意味

着在语言中添加了新的数据类型。因为jaທva编译器会留意类库的使用方式——确保正确的

初始化和垃圾回收,并保证其方法被正确调用,因此,你只需专注于你想让类库做些什么เ,

而不必关心应如何去做。

错误处理

在c语言中,错误处理一直是一个声名狼籍的问题๤,而且经常被忽视——经常只能靠上帝

保佑了。如果你在构建一个大型的、复杂的程序,那ว么没有什么比在程序某处暗藏了一个ฐ错

误,而你却没有任何能够暗示它在何处的线索更糟糕的事情了。java异常处理ex9๗

handling便是一种能够确保错误必须ี报告,而且必须有所动作作为其响应的机制。

大型程序设计

许多传统语言在程序大小和复杂度方แ面都有内置的限制。例如,basic可能ม对某类问题地

解决能力非常强,可以快地创น建解决方案,但是如果程序长度过数页,或者出该语言

正常的题域之外,它就会像“在非常粘稠的液体中游泳”。没有明确的界ศ线来表示ิ何时你所

使用的语言会导致最终的失败,即使有这样的界ศ线,你也会忽视它。你总不能说:“我的

baທsicນ程序太大了,我不得不用cນ来重写它!”相反,你会试着将几行代码硬塞进去,以便

在程序中增加新功能ม。因此,不知不觉中,你就付出了额๩外的开销。

javaທ具备编写大型程序的能力——也就是说,它消除了小型程序和大型程序之间的复杂度界

线。在编写“hello,9๗orld”风格的小应用程序时,你当然不必使用oop,但是当你需要用

到时,这些功能随手可得。而且,对小型程序和大型程序,编译器都会一视同仁地、积极地

找出因bug而产生的错误。

java与c++ใ

java看起来很像cນ++,因此,很自然地,看起来c+ใ+将会被jaທvaທ取代。但是我开始怀疑这

种逻辑了。cນ++仍然有某些功能ม是java不具备的,尽管关于java终有一日会与c++一样快,

甚至更快的承诺层出不穷,我们也๣看到了java在稳步地提高,但是至今并没有什么เ令人瞩

目的突破。而且,人们对c++ใ仍持续地保持着兴趣,因此我不认为cນ+ใ+会在近期内消亡。

所有的编程语言看起来都不会永远地消亡。

于是我开始考虑:java的能力适用的战场与c++ใ的稍有不同,c++并不会去尝试为某类问题

量身订造。当然,它也๣采用了大量的方法来解决各种特定问题。某些c++工具结合了类库、

构件模型和代码生成工具,以解决开视窗型终端用户应用微软9indo9s应用过程中ณ的

问题。然而,绝大多数9indo9s应用的开者使用的是什么呢?是微软的visualbasicນvb,

尽管vb所产生的代码在程序仅仅只有几页ษ长的情况下就已经变得难以管理了而且其语法

也肯定让人迷惑不解。虽然vbຘ如此成功、如此流行,它却不是一个很好的语言设计范例。

如果能够在拥有vb的简易性及其强大威แ力的同时,而又不会产生难以管理的代码,那ว该有

多好啊。这正是我认为javaທ终会光芒四散的原因所在:它会是下一个ฐvb

8

。你可能会,也๣可

能不会因听到这种说法而感到害怕,但是想想看,jaທva作了那ว么多的事情,都是为了使程

序员能够更容易地解决诸如网络、跨平台ui之类的应用级问题๤,可是它仍然具备了编程语

言的设计特征,它允许创建非常大型且极具灵活性的代码。此外,java的类型检查和错误处

理相对于绝大多数其他语言来说,都有很大的提高,这使得你可以在编程生产力方แ面产生显

着的阶越。

如果你基本上是从头开所有的代码,那么在简单性方面要胜过c++的jaທva可以显着地缩

短你的开时间。有传言我是从一些原先使用cນ++ใ,后来转投java阵营的开团队那里

听来的称,用java的开度过cນ++的两倍。如果javaທ的性能对你来说不是问题,或

者你可以以某种方式加以弥补,那么纯粹考虑“时间-市场”因素า,你是很难不选择jaທva而

选择c++ใ的。

最大的问题还是性能。在原始的java解释器中,解释型的java运行度曾经非常慢,甚至

比c要慢20至5๓0倍。随着时间的推移,这一点已经有了很大的改进特别是最近的java

版本,但是仍然有很大的差距。论及计算机,无非就是度。如果你在计算机上做事情的

度并没有快很多,也๣许你就会宁愿手工完成它。我曾听过有人建议,如果你需要较快的

执行度,那ว么你可以先使用java开以获取较短的开时间,然后再使用某种工具和支

持类库将你编写的代码翻译成为c++ใ代码。

使jaທvaທ适用于许多开项ำ目的关键,就是出现了能够提升度的技术,例如所谓“即时

just-in-time,jit”编译器、sun自己的“hotspot”技术,以及“本地代码编译器native

codepiler”。当然,所有的本地代码编译器抹煞ย了编译过的代码可以跨平台执行这一非

常吸引用户的特性,但是它们同时也带来了接近c和c++的执行度。而且,跨平台编译

javaທ程序比起c和c++ใ来要容易得多。理论上讲,你只须ี重新编译,但是其他语言也๣都这

么承诺过。

总结

本章试图让你体验一下面向对象程序设计和jaທva中各种宽泛的话题,包括为ฦ什么面向对象

程序设计与众不同,以及为什么เjaທva格外与众不同。

oop和java也许并不适合所有的人。重要的是正确评估你自己的需求,并决定jaທva是否能

够最好地满足这些需求,或者你使用其它编程系统包括你当前正在使用的是更好的选择。

如果你知道你的需求在可预ไ见的未来会变得非常特殊化,并且java可能不能ม满足你的具体

限制,那么เ你就应该去考察其它的选择我特别推荐你看看python,python。即

使最终你选择了java作为ฦ你的编程语言,你至少要理解还有哪些选项可供选择,并且对为

什么选择这个方向要有清楚的认识。

8

微软总是在强调它不象c#ี和“那么快”,许多人都产生过这样的问题:vb的程序员是否愿意转而使

用其它语言,是否会使用jaທva,c#,或者是vbຘ

你知道过程型语言看起来像什么样子:数据定义和函数调用。想了解此类程序的含义,你得

忙上一阵,需要通读函数调用和低层概念,以在你那ว脑海里建立一个模型。这正是我们在设

计过程式程序时,需要中ณ介表示ิ方式的原因。这些程序总是容易把人搞糊涂,因为ฦ它们使用

的表示术语更加面向计算机而不是你要解决的问题。

书签 上一章 目录 下一章 书架s
推荐阅读: 别再叫我姐姐免费 女总裁故事清辉夜宁 鬼面郎君 弱水 年下小狼狗小说 重生之扫墓第几章在一起 穿成女alpha后的荒谬生活txt下载宝书网 潇然梦全文阅读免费 哆啦A梦 回到地球当神棍 御香缥缈录