【Java精品源码栏目提醒】:网学会员为广大网友收集整理了,Thinking In Java第四版(中文版) - 软件工程,希望对大家有所帮助!
《T h i n k i n g I n J a v a》中文版 作者:Bruce Eckel 主页:http://www.BruceEckel.com 编译:Trans Bot 主页:http://member.netease.com/ ̄transbot 致谢 --献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们! 指导您利用万维网的语言进行面向对象的程序设计 完整的正文、更新内容及程序代码可从 http://www.bruceeckel.com 下载 从 Java 的基本语法到它最高级的特性(网络编程、高级面向对象能力、多线程),《Thinking In Java》都能对您有所裨益。
Bruce Eckel 优美的行文以及短小、精悍的程序示例有助于您理解含义模糊的概念。
面向初学者和某种程度的专家 教授 Java 语言,而不是与平台有关的理论 覆盖 Java 1.2 的大多数重要方面:Swing 和新集合 系统讲述 Java 的高级理论:网络编程、多线程处理、虚拟机性能以及同非 Java 代码的连接 320 个有用的 Java 程序,15000 行以上代码 解释面向对象基本理论,从继承到设计方案 来自与众不同的获奖作者 Bruce Eckel 可通过万维网免费索取
源码和持续更新的本书电子版 从 www.BruceEckel.com 获得配套 CD(含 15 小时以上的合成语音授课) 读者如是说:“最好的 Java 参考书……绝对让人震惊”;“购买 Java 参考书最明智的选择”;“我见过的最棒的编程指南”。
Bruce Eckel 也是《Thinking in C++》的作者,该书曾获 1995 年 SoftwareDevelopment Jolt Award 最佳书籍大奖。
作为一名有 20 经验的编程专家,曾教授过世界上许多地区的人进行对象编程。
最开始涉及的领域是C++,现在也进军 Java。
他是 C++标准协会有表决权的成员之一,曾就面向对象程序设计这一主题写过其他 5本书,发表过 150 多篇文章,并是多家计算机杂志的专栏作家,其中包括《Web Techniques》的 Java 专栏。
曾出席过 C++和 Java 的“软件开发者会议”,并分获“应用物理”与“计算机工程”的学士和硕士学位。
读者的心声 比我看过的 Java 书好多了……非常全面,举例都恰到好处,显得颇具“智慧”。
和其他许多 Java 书 籍相比,我觉得它更成熟、连贯、更有说服力、更严谨。
总之,写得非常好,肯定是一本学习 Java 的好书。
(Anatoly Vorobey,TechnionUniversity,Haifa,以色列)。
是我见过的最好的编程指南,对任何语言都不外如是。
(Joakim ziegler,FIX 系统管理员) 感谢你写出如此优秀的一本 Java 参考书。
(Dr. Gavin Pillay,Registrar,King Edward VII Hospital ,南非) 再次感谢您这本令人震惊的书。
我以前真的有点儿不知所从的感觉(因为不是 C 程序员),但你的书 浅显易懂,使我能很快掌握 Java——差不多就是阅读的速度吧。
能从头掌握基本原理和概念的感觉 真好,再也不用通过不断的试验和出错来建立概念模型了。
希望不久能有机会参加您的讲座。
(Randall R. Hawley,Automation Technician,Eli Lilly & Co) 我迄今为止看过的最好的计算机参考书。
(Tom Holland) 这是我读过的关于程序设计的最好的一本书……第 16 章有关设计方案的内容是我这么久以来看过的 最有价值的。
(Han Finci,助教,计算机科学学院,耶路撒冷希伯来大学,以色列) 有史以来最好的一本 Java 参考书。
(Ravindra Pai,Oracle 公司 SUNOS 产品线) 这是关于 Java 的一本好书。
非常不错,你干得太好了!书中涉及的深度真让人震惊。
一旦正式出 版,我肯定会买下它。
我从 96 年十月就开始学习 Java 了。
通过比较几本书,你的书可以纳入“必 读”之列。
这几个月来,我一直在搞一个完全用 Java 写的产品。
你的书巩固了我一些薄弱的地方, 并大大延伸了我已知的东西。
甚至在会见承包商的时候,我都引用了书中的一些解释,它对我们的开 发小组太有用了。
通过询问组内成员我从书中学来的知识(比如数组和矢量的区别),可以判断他们 对 Java 的掌握有多深。
(Steve Wilkinson,MCI 通信公司资深专家) 好书!我见过的最好的一本 Java 教材。
(Jeff Sinclair,软件工程师,Kestral Computing 公司) 感谢你的《Thinking in Java》。
终于有人能突破传统的计算机参考书模式,进入一个更全面、更深 入的境界。
我读过许多书,只有你的和 Patrick Winston 的书才在我心目中占据了一个位置。
我已向 客户郑重推荐这本书。
再次感谢。
(Richard Brooks,Java 顾问,Sun 专业服务公司,达拉斯市) 其他书讨论的都是 Java“是什么”(讲述语法和库),或者 Java “怎样用”(编程实例)。
《Thinking in Java》显然与众不同,是我所知唯一一本解释 Java“为什么”的书:为什么象这样 设计,为什么象这样工作,为什么有时不能工作,为什么比 C++好,为什么没有 C++好,等等。
尽管 这本书也很好讲述了“是什么”和“怎样用”的问题,但它的特色并在于此。
这本书特别适合那些想 追根溯源的人。
(Robert S. Stephenson) 感谢您写出这么一本优秀的书,我对它越来越爱不释手。
我的学生也喜欢它。
(Chuck Iverson) 向你在《Thinking in Java》的工作致敬。
这本书对因特网的未来进行了最恰当的揭示,我只是想对 你说声“谢谢”,它非常有价值。
(Patrick Barrell,Network Officer Mamco-QAF Mfg 公司) 市面上大多数 Java 书作为新手指南都是不错的。
但它们的立意大多雷同,举的例子也有过多的重 复。
从未没见过象您这样的一本书,它和那些书完全是两码事。
我认为它是迄今为止最好的一本参考 书。
请快些出版它!……另外,由于《Thinking in Java》都这么好了,我也赶快去买了一本 《Thinking in C++》。
(George Laframboise,LightWorx 技术咨询公司) 从前给你写过信,主要是表达对《Thinking in C++》一书的惊叹(那本书在我的书架上占有突出的 位置)。
今天,我很欣慰地看到你投向了 Java 领域,并有幸拜读了最新的《Thinking in Java》电 子版。
看过之后,我不得不说:“服了!”内容非常精彩,有很强的说服力,不象读那些干巴巴的参 考书。
你讲到了 Java 开发最重要、也最易忽略的方面:基本原理。
(Sean Brady) 你举的例子都非常浅显,很容易理解。
Java 的许多重要细节都照顾到了,而单薄的 Java 文档根本没 有涉及那些方面。
另外,这本书没有浪费读者的时间。
程序员已经知道了一些基本的事实,你在这个 基础上进行了很好的发挥。
(Kai Engert,Innovative Software 公司,德国) 我是您的《Thinking in C++》的忠实读者。
通读了您的 Java 书的电子版以后,发现您在这两本书上 有同样高级别的写作水平。
谢谢!(Peter R. Neuwald) 写得非常好的一本 Java 书……我认为您的工作简直可以说“伟大”。
我是芝加哥地区 Java 特别兴趣 组的头儿,已在最近的几次聚会上推荐了您的书和 Web 站点。
以后每个月开 SIG 会的时候,我都想把 《Thinking in Java》作为基本的指导教材使用。
一般来说,我们会每次讨论书中的一章内容。
(Mark Ertes) 衷心感谢你的书,它写得太好了。
我已把它推荐给自己的用户和 Ph.D.学生。
(Hugues Leroy//Irisa-Inria Rennes France,Head of Scientific Computingand Industrial Tranfert) 2 我到现在只读了《Thinking in Java 》的 40 页内容,但已对它留下了深刻的印象。
这无疑是见过的 最精彩的编程专业书……而且我本身就是一个作家,所以这点儿看法还是有些权威吧。
我已订购了 《Thinking in C++》,已经等得迫不及待了——我是一名编程新手,最怕的就是散乱无章的学习线 索。
所以必须在这里向您的出色工作表示敬意。
以前看过的书似乎都有这方面的毛病,经常使我才提 起的兴致消弥于无形。
但看了你的书以后,感觉好多了。
(Glenn Becker,EducationalTheatre Association) 谢谢您这本出色的书。
在终于认识了 Java 与 C++之间纠缠不清的一些事实后,我真的要非常感谢这 本书。
对您的书非常满意!(Felix Bizaoui,Twin OaksIndustries,Louisa,Va) 恭喜你写出这么好的一本书。
我是在有了阅读《Thinking in C++》的经历以后,才来看这本 《Thinking in Java》的,它确实没让我失望。
(Jaco van derMerwe,软件专家,DataFusion Systems 有限公司,Stellenbosch,南非) 这是我看过的最好的 Java 书之一。
(E.E. Pritchard,资深软件工程师,英国剑桥动画系统有限公 司) 你的东东让其他 Java 参考收黯然失色。
看来其他作者都应该向你看齐了。
(Brett g Porter,资深 程序员,Art & Logic) 我花了一、两个星期的时间来看你的书,并对以前我看过的一些 Java 书进行了比较。
显然,只有你 的书才能让我真正“入门”。
现在,我已向我的许多朋友推荐了这本书,他们都对其作出了很高的评 价。
请接受我真诚的祝贺,并希望她早些正式出版。
(Rama Krishna Bhupathi,软件工程师,TCSI 公司,圣琼斯) 这是一本充满智慧的书,与简单的参考书有着截然不同的风格。
它现在已成了我进行 Java 创作一份 主要参考。
你的目录做得相当不错,让人一目了然,很快就能找到自己需要的东西。
更高兴的是,这 本书没有写成一本改头换面的 API 字典,也没有把我们这些程序员看作傻瓜。
(Grant Sayer,Java Components Group Leader,Ceedata Systems Pty 有限公司,澳大利亚) 啧啧,一本可读性强、论据充分的 Java 书。
外面有太多用词贫乏的 Java 书(也有几本好的),只有 你的书是最好的。
那些垃圾在你的书前面不值一提。
(John Root,Web 开发员,伦敦社会安全部) 我刚刚开始看《Thinking in Java》。
我希望它能有更大的突破,因为《Thinking in C++》写得实 在太好了。
我是一名有经验的 C++程序员,事先看那本书对学习 Java 很有帮助。
但我在 Java 上的经 验不够,希望这本新书能让我满意。
您真是一名“高产高质”作者。
(Kevin K. Lewis, ObjectSpace 公司技术员) 我认为这是本好书。
从这本书中,我学到了与 Java 有关的所有知识。
谢谢你能让这本书通过互联网 免费发行。
如果不那样做,我根本不可能象现在这样有巨大的进步。
但最令人高兴的是,你的书并没 有成为一本官方 Java 手册,指出了 Java 一些不当的地方。
你真是做了一件大好事。
(Frederik Fix, Belgium) 我现在经常查阅你的书。
大约两年前,当我想开始学习 C++的时候,是《C++ Inside&Out》指导我游 历 C++的世界。
它使我在这方面的技能大增,并找到了一个较好的职位。
现在出于工作上的原因需要 学习 Java,又是《Thinking in Java》给我正确的指引。
尽管现在可选择的书更多了,但我知道自 己别无选择。
很奇妙,不是吗?现在看这本书的时候,我居然有一种重新认识自己的感觉。
衷心感谢 你,我现在的理解又比以前深入多了。
(Anand Kumar S.,软件工程师,Computervision 公司,印 度) 你的书给人一种“鹤立鸡群”的感觉。
(Peter Robinson,剑桥大学计算机实验室) 3 这是我看过的最好的一本 Java 参考书。
现在想起来,能找到这样的一本书简直是幸运。
谢谢! (Chuck Peterson,因特网产品线主管,IVIS International 公司) 这本书太棒了!它已是我看过的第三本 Java 书了,真后悔没有早点儿发现它。
前两本书都没坚持看 完,但我已决心看完这一本。
不妨告诉你,当时我是想寻找关于内部类使用的一些资料,是我的朋友 告诉我网上能下载这本书。
你干得真不错!(Jerry Nowlin,MTS,Lucent Technologies) 在我看过的 6 本 Java 书中,你的《Thinking in Java》是最好和最有用的。
(Michael Van Waas, Ph.D,TMR Associates 公司总裁) 我很想对《Thinking in Java》说声谢谢。
这是一本多么出色的书——并不单指它在网上免费发送! 作为一名学生,我认为你的书有不可估量的价值(我有《C++ Inside&Out》的拷贝,那是关于 C++的 另一本好书),因为它不仅教我怎样做,而且解释了为什么。
这当然为我用 C++或 Java 这样的语言 编程打下了坚实的基础。
我有许多朋友都象我一样热爱编程,在向他们推荐了这本书后,反映都非常 好,他们的看法同我一样。
再次感谢您。
顺便提一句,我是一个印尼畜牲,整天都喜欢和 Java 泡在 一起!(Ray Frederick Djajadinata,Trisakti 大学学生,Indonesian Pork) 你把这本书放在网上引起了相当程度的轰动,我对你的做法表示真诚的感谢与支持!(Shane LeBouthillier,加拿大艾伯特大学计算机工程系学生) 告诉你吧,我是多么热烈地盼望读到你每个月的专栏!作为 OOP 设计的新手,我要感谢你把即使最基 本的概念都讲得那么透彻和全面。
我已下载了你的书,但我保证会在它正式出版后另行购买。
感谢你 提供的所有帮助!(Dan Cashmer,B.C.Ziegler & Co.) 祝贺你完成了一件伟大的作品。
我现在下载的是《Thinking in Java》的 PDF 版。
这本书还没有读 完,便迫不及待地跑到书店去找你的《Thinking in C++》。
我在计算机界干了 8 年,是一个顾问, 兼软件工程师、教师/培训专家,最近辞职自己开了一间公司。
所以见过不少的书。
但是,正是这些 书使我的女朋友称我为“书呆子”!并不是我概念掌握得不深入——只是由于现在的发展太快,使我 短期内不能适应新技术。
但这两本书都给了我很大的启示,它与以前接触过或买过的计算机参考书都 大不相同。
写作风格很棒,每个新概念都讲得很好,书中充满了“智慧”。
(Simon Goland, simonsez@smartt.com,Simon Says Consulting 公司) 必须认为你的《Thinking in Java》非常优秀!那正是我一直以来梦想的参考书。
其中印象最深的是 有关使用 Java 1.1 作软件设计时的一些优缺点分析。
(DirkDuehr,Lexikon Verlag,Bertelsmann AG,德国) 谢谢您写出两本空前绝后的书(《Thinking in Java》和《Thinking in C++》)。
它们使我在面向 对象的程序设计上跨出了一大步。
(Donald Lawson,DCLEnterprises) 谢谢你花时间写出一本真正有用的 Java 参考书,你现在绝对能为自己的工作感到骄傲了。
(Dominic Turner,GEAC Support) 这是我见过的最好的一本 Java 书。
(Jean-Yves MENGANT,Chief Software Architect NAT- SYSTEM,法国巴黎) 《Thinking in Java》无论在覆盖的范围还是讲述方法上都有独到之处。
看懂这本书非常容易,摘录 的代码段也很有说服力。
(Ron Chan ,Ph.D,Expert Choice 公司,Pittsburgh PA) 你的书太棒了。
我看过许多编程书刊,只有你的书给人一种全新的视野。
其他作者都该向你好好学习 才是。
(Ningjian Wang,信息系统工程师,The Vangurad Group) 4 《Thinking in Java》是一本出色的、可读性极强的书,我已向我的学生推荐阅读。
(Dr. Pual Gorman,计算机科学系,Otago 大学,Dunedin 市,新西兰) 在我看过的书中,你的书最有品味,不象有的书那样粗制滥造。
任何搞软件开发的人都不应错过。
(Jose Suriol,Scylax 公司) 感谢您免费提供这本书,它是我看过或翻过的最好的一本。
(JeffLapchinsky,Net Results Technologies 公司程序员) 这本书简明扼要,看起来不仅毫不费力,而且象是一种享受。
(Keith Ritchie,Java 研发组,KL Group 公司) 这真的是我看过的最好的一本 Java 书!(Daniel Eng) 我看过的最好的 Java 书!(Rich Hoffarth,Senior Architect,West Group) 感谢你这本出色的书籍,我好久都没有经历让人如此愉悦的阅读过程了。
(Fred Trimble,Actium 公司) 你的写作能准确把握轻重缓急,并能成功抓住细节。
这本书让学习变成了一件有趣的事情,我感觉满 意,非常满意!谢谢你这本出色的学习教程。
(Rajesh Rau,软件顾问) 《Thinking in Java》让整个自由世界都感受到了震憾!(Miko O’Sullivan,Idocs 公司总裁) 关于《Thinking in C++》: 荣获 1995 年由《软件开发》杂志评选的“最佳书籍”奖! “这本书可算一个完美的典型。
把它放到自己的书架上绝对不会后悔。
关于 IO 数据流的那部分内容 包含了迄今为止我看过的最全面、最容易理解的文字。
”(Al Stevens,《道伯博士》杂志投稿编 辑) “Eckel 的书是唯一一本清楚解释了面向对象程序设计基础问题的书。
这本书也是 C++的一本出色教 材。
”(Andrew Binstock,《Unix Review》编辑)” “Bruce 用他对 C++深刻的洞察力震惊了我们,《Thinking in C++》无疑是各种伟大思想的出色组 合。
如果想得到各种困难的 C++问题的答案,请购买这本杰出的参考书”(Gary Entsminger,《对 象之道》的作者) “《Thinking in C++》非常耐心和有技巧地讲述了关于 C++的各种问题,包括如何使用内联、索 引、运算符过载以及动态对象。
另外还包括一些高级主题,比如模板的正确使用、违例和多重继承 等。
所有这些都精巧地编织在一起,成为 Eckel 独特的对象和程序设计思想。
所有 C++开发者的书架 上都应摆上这本书。
如果你正在用 C++搞正式开发,这本书绝对有借鉴价值。
”(Richard Hale Shaw,《PC Magazine》投稿编辑)。
5 写在前面的话 我的兄弟 Todd 目前正在进行从硬件到编程领域的工作转变。
我曾提醒他下一次大革命的重点将是遗传工程。
我们的微生物技术将能制造食品、燃油和塑料;它们都是清洁的,不会造成污染,而且能使人类进一步透视物理世界的奥秘。
我认为相比之下电脑的进步会显得微不足道。
但随后,我又意识到自己正在犯一些科幻作家常犯的错误:在技术中迷失了(这种事情在科幻小说里常有发生)!如果是一名有经验的作家,就知道绝对不能就事论事,必须以人为中心。
遗传对我们的生命有非常大的影响,但不能十分确定它能抹淡计算机革命——或至少信息革命——的影响。
信息涉及人相互间的沟通:的确,汽车和轮子的发明都非常重要,但它们最终亦如此而已。
真正重要的还是我们与世界的关系,而其中最关键的就是通信。
这本书或许能说明一些问题。
许多人认为我有点儿大胆或者稍微有些狂妄,居然把所有家当都摆到了 Web上。
“这样做还有谁来买它呢?”他们问。
假如我是一个十分守旧的人,那么绝对不这样干。
但我确实不想再沿原来的老路再写一本计算机参考书了。
我不知道最终会发生什么事情,但的确认为这是我对一本书作出的最明智的一个决定。
至少有一件事是可以肯定的,人们开始向我发送纠错反馈。
这是一个令人震惊的体验,因为读者会看到书中的每一个角落,并揪出那些藏匿得很深的技术及语法错误。
这样一来,和其他以传统方式发行的书不同,我就能及时改正已知的所有类别的错误,而不是让它们最终印成铅字,堂而皇之地出现在各位的面前。
俗话说,“当局者迷,旁观者清”。
人们对书中的错误是非常敏感的,往往毫不客气地指出:“我想这样说是错误的,我的看法是……”。
在我仔细研究后,往往发现自己确实有不当之处,而这是当初写作时根本没有意识到的(检查多少遍也不行)。
我意识到这是群体力量的一个可喜的反映,它使这本书显得的确与众不同。
但我随之又听到了另一个声音:“好吧,你在那儿放的电子版的确很有创意,但我想要的是从真正的出版社那里印刷的一个版本!”事实上,我作出了许多努力,让它用普通打印机机就能得到很好的阅读效果,但仍然不象真正印刷的书那样正规。
许多人不想在屏幕上看完整本书,也不喜欢拿着一叠纸阅读。
无论打印格式有多么好,这些人喜欢是仍然是真正的“书”(激光打印机的墨盒也太贵了一点)。
现在看来,计算机的革命仍未使出版界完全走出传统的模式。
但是,有一个学生向我推荐了未来出版的一种模式:书籍将首先在互联网上出版,然后只有在绝对必要的前提下,才会印刷到纸张上。
目前,为数众多的书籍销售都不十分理想,许多出版社都在亏本。
但如采用这种方式出版,就显得灵活得多,也更容易保证赢利。
这本书也从另一个角度也给了我深刻的启迪。
我刚开始的时候以为 Java“只是另一种程序设计语言”。
这个想法在许多情况下都是成立的。
但随着时间的推移,我对它的学习也愈加深入,开始意识到它的基本宗旨与我见过的其他所有语言都有所区别。
程序设计与对复杂性的操控有很大的关系:对一个准备解决的问题,它的复杂程度取决用于解决它的机器的复杂程度。
正是由于这一复杂性的存在,我们的程序设计项目屡屡失败。
对于我以前接触过的所有编程语言,它们都没能跳过这一框框,由此决定了它们的主要设计目标就是克服程序开发与维护中的复杂性。
当然,许多语言在设计时就已考虑到了复杂性的问题。
但从另一角度看,实际设计时肯定会有另一些问题浮现出来,需把它们考虑到这个复杂性的问题里。
不可避免地,其他那些问题最后会变成最让程序员头痛的。
例如,C++必须同 C 保持向后兼容(使 C 程序员能尽快地适应新环境),同时又要保证编程的效率。
C++在这两个方面都设计得很好,为其赢得了不少的声誉。
但它们同时也暴露出了额外的复杂性,阻碍了某些项目的成功实现(当然,你可以责备程序员和管理层,但假如一种语言能通过捕获你的错误而提供帮助,它为什么不那样做呢?)。
作为另一个例子,Visual Basic(VB)同当初的 BASIC 有关的紧密的联系。
而 BASIC 并没有打算设计成一种能全面解决问题的语言,所以堆加到 VB 身上的所有扩展都造成了令人头痛和难于管理和维护的语法。
另一方面,C++、VB 和其他如 Smalltalk 之类的语言均在复杂性的问题上下了一番功夫。
由此得到的结果便是,它们在解决特定类型的问题时是非常成功的。
在理解到 Java 最终的目标是减轻程序员的负担时,我才真正感受到了震憾,尽管它的潜台词好象是说:“除了缩短时间和减小产生健壮代码的难度以外,我们不关心其他任何事情。
”在目前这个初级阶段,达到那个目标的后果便是代码不能特别快地运行(尽管有许多保证都说 Java 终究有一天会运行得多么快),但它确实将开发时间缩短到令人惊讶的地步——几乎只有创建一个等效 C++程序一半甚至更短的时间。
这段节省下来的时间可以产生更大的效益,但 Java 并不仅止于此。
它甚至更上一层楼,将重要性越来越明显的一切复杂任务都封装在内,比如网络程序和多线程处理等等。
Java 的各种语言特性和库.
上一篇:
【精品】可视化编程
下一篇:
ASP小区停车管理系统(Access)(含录像)