基本信息
- 作者: (美)Joshua Bloch
- 译者: 闻山 等
- 丛书名: Sun公司核心技术丛书
- 出版社:机械工业出版社
- ISBN:7111096355
- 上架时间:2002-2-4
- 出版日期:2002 年1月
- 页码:164
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java
内容简介
计算机书籍
[font color="#ff0000"][b]原版进口[/b][/font] [a href="http://www.china-pub.com/computers/common/info.asp?id=13402" target="_blank"]effective java programming language guide[/a]
本书包含了java编程的一些极具价值的经验原则,涵盖了大多数开发者在日常程序设计中经常遇到的问题的解决方案。书中通过对设计java平台的专家所使用技术的全面介绍,揭示产生清晰、健壮、高效的代码需要做的和应予以避免的方方面面。每一个原则以简短独立的小品文形式出现,提供了来自这位杰出作者的丰富经验和详实的“实战故事”。贯穿全书的是通用的语言用法和设计模式,具有启发意义的技巧和技术。
本书提供了编写高效的程序所需的最实用、最权威的指导原则。
目录
第2章 创建及销毁对象
2.1 考虑用静态工厂方法代替构造函数
2.2 使用私有构造函数强化singleton属性
2.3 用私有构造函数强化不可实例化能力
2.4 避免创建重复对象
2.5 消除对过期对象的引用
2.6 避免使用终结程序
第3章 对象的通用方法
3.1 重载equals时要遵守通用约定
3.2 重载equals时永远要重载hashcode
3.3 永远要重载tostring
3.4 谨慎地重载clone
3.5 实现comparable的问题
第4章 类和接口
4.1 最小化类和成员的可访问能力
4.2 倾向于非可变性
4.3 组合优于继承
4.4 设计和文档化继承
4.5 接口优于抽象类
译者序
Java编程语言具有简单、平台独立、面向对象、分布式、安全性、可移植性、多线程等特性,符Internet的发展,适应了资源共享的需求,成为分布式软件开发的主流技术。随着B2B、B2C.C2C电子商务的迅速崛起,以及分布式计算模式的广泛采用,Java将越来越流行。可以预见在“后PC时代”Java将扮演举足轻重的角色。目前,Java语言以令人惊讶的速度发展,并且Java技术日益成熟,使用Java语言的应用正在向深度和广度方向渗透。
本书从独特的视角,通过作者数十年的Java设计经历,把Java语言设计的精要展现给读者,把众多的Java设计师的经验与读者分享。全书以小品文的形式组织,结构灵活,内容丰富,文字间跳跃着智慧的火花,书中的例子给人留下了深刻的印象。相信读者通过阅读本书,不仅在具体的编程技术而且在系统的编程思想上会有很大提高。
本人有幸把这部优秀的著作奉献给中国的广大Java程序员,这对我也是一次挑战,感谢公司给我的这次机会,感谢朋友同事的鼓励支持!
本书由闻山、范小萌、李林、叶小松、张洁、赵波、钟萍、邓波、窦强、陈勇、龚建波等进行翻译。前导工作室的全体同仁共同完成了本书的翻译、录排、校对等工作。尽管准确及时是我们的首要追求目标,但由于时间仓促,且译者的水平有限,在翻译过程中难免会有错误出现,请读者批评指正!
2001年10月
前言
本书是我的一次尝试,我希望与你一起分享我的经验,使你能够避免出现相同的错误从而获得成功。我借用了Scott Meyers《Effective C++》的格式,那本书共50节,每一节给出一条如何提高程序性能和设计的具体原则。我觉得这种格式非常有效,因此我也选择了这样做。
在许多例子里,我冒昧地使用了Java类库里的真实例子来说明我的内容。在介绍那些做得不是很完美的工作时,我尽量使用了自己的代码,但有时我也使用了其他同事的。尽管我尽力不使这种局面发生,但如果真的冒犯了某人,我在这里致以诚挚的歉意。例举反面例子是出于协作的考虑,以便读者能从我们的错误经历中得到启示。
尽管本书不是只针对可重用组件开发者的,但不可避免地受到了过去20多年里我从事这方面工作的影响。我自然而然地按照导出API(Application Programming Interfaces,应用编程接口)的思路思考问题,并且我鼓励你也这样做。尽管你不一定要开发可重用组件,但这样构思有助于提高软件设计质量。而且,这种情形并不少见:开始做了某项有益的工作,然后在伙伴间分享,不久以后有了许多用户,这时,就不能再随心所欲地对API进行修改。如果你不经意间设计出了可重用组件,那么你会庆幸最初设计时在实现API方面所做的这种努力。
我把重点放到API设计上的做法对那些倾心于新的轻量级软件开发方法学(lightweight Soft-ware development methodology)的读者也许不是很自然。这些方法强调设计可以工作的最简单的程序。如果你正在运用这些理念,你会发现把重点放在API设计上的做法有助于重分解(refactoring)处理。重分解的基本目标是系统结构的提高和避免代码冗余。如果系统组件没有设计良好的API,那么这些目标是不可能实现的。
语言没有完美的,但有杰出的。我认为Java语言和它的类库非常有助于质量和效率的提高,使用它是工作上的享受。我希望这本汇聚着本人热情和希望的作品,可以使你在使用Java时更高效,更轻松!
Joshua Bloch
Cupertino,California
2001年4月
序言
这对程序设计语言完全一样。你需要理解语言核心:它是算法的(algnrithmic)、函数的(func-tional)还是面向对象的(object-oriented)?你需要熟悉词汇:标准库提供了什么样的数据结构、操作和功能;同时,还要熟悉构造代码的习惯和高效用法。有关程序设计语言的教材一般都涉及前两点,而对第三点只做蜻蜒点水式的提及。这可能是由于前两点更容易编写。语法和词汇仅仅是语言自身的属性,但用法却是使用这门语言的群体的特性。
例如,Java是使用单继承的面向对象的程序设计语言,在每一个方法内支持强制的(面向语句的.statement-oriented)编码风格。类库对图形显示、网络、分布计算和安全提供了支持。但如何在实践中最有效地使用它呢?
还有一点,程序和口头的句子及大多数书籍杂志不同,是会随时间改变的。仅仅设计能有效工作和易于被别人理解的代码通常是不够的,还必须要把代码组织成易于修改的形式。对于某个任务T.可能会有10种代码设计方法。而这10种方法中,有7种可能是笨拙的、低效的或者是难以理解的。剩下的3种,哪一种可能会接近该任务T的下一年版本的代码呢?
现在,有关Java语言的语法、Java语言类库和API的书籍有很多,你可以通过这些书籍来了解和学习Java语言。
本书满足你的第三个需要:习惯和高效用法。作者Joshua Bloch在Sun Microsystems多年来从事Java语言的扩展、实现和使用工作。他还阅读了他人的大量代码。在本书中,他提出了有益的。经过系统组织的建议,这些建议有关如何构建代码使程序工作良好、使其他人易于理解,以及在今后的改动和升级时带来更少的问题——甚至关于如何使你的程序变得愉悦、优美、雅致。
Guy L.Steele Jr.
Burlington,Massachusetts
2001年4月



(已有15条评价)











