Effective Java

Joshua Bloch

出版时间

2009-08-31

ISBN

9787115211316

评分

★★★★★

标签

计算机

书籍介绍
这不是一本教你Java语法的书,而是给已经能写代码的人看的'避坑指南'。作者把多年实践中沉淀下来的经验,浓缩成一条条具体、可操作的建议,从对象创建销毁、方法设计到类与接口的规范,逐条剖析'为什么该这样做'。读者反馈中最常被提起的,是它把Java 5引入的各种新机制与老坑讲得透彻,读起来甚至能和《Effective C++》互相印证。它适合那些不满足于'能跑就行'、希望写出清晰健壮高效代码的程序员。唯一需要提醒的是译本质量参差,建议配合英文原版对照阅读。
作者简介
Joshua Bloch是Google公司的首席Java构架师,也是Jolt图书大奖的获得者。他曾是Sun公司的杰出工程师和Transarc公司的高级系统设计师。Bloch带领着他的优秀团队,设计和实现过无数的Java平台特性,包括JDK5.0语言增强版和获奖的Java Collections Framework。
AI导读
核心看点
  • 汇集78条Java编程最佳实践
  • 涵盖Java 5新特性与核心设计
  • 提供清晰健壮高效的代码范例
读者共识
  • Java领域公认的经典神作
  • 内容深刻,适合反复研读
  • 部分章节晦涩,需耐心细读
精彩摘录
  • "例如,构造器 BigInteger(int, int, Random)会返回一个为可能素数(probable prime)的 BigInteger, 但如果用一个名为 BigInteger.probablePrime 的静态工厂方法来表示,效果会更好。"
  • "大多数程序员都不需要这个方法(指枚举的ordinal方法),他是设计成用于像EnumSet和EnumMap这种基于枚举的通用数据结构的,除非你在编写的是这类数据结构,否则最好完全避免使用ordinal方法。"
  • "如果类具有从客户端得到或返回到客户端的可变组件。类就必须保护性的拷贝这些组件。如果拷贝的成本受到限制,并且信任他的客户端不会不恰当的修改组件,就可以在文档中指明客户端的职责是不得修改受到影响的组件,以此来代替保护性拷贝"
  • "谨慎地选择方法的名称"
  • "不要过于追求提供便利的方法"
  • "避免过长的参数列表"
  • "要调用哪个重载(overloading)方法是在编译期做出决定的 重载方法(overloaded method)的选择是静态的,而对于被覆盖的方法(overridden method)的选择则是动态的"
  • "“能够重载方法”并不意味着就“应该重载方法”。一般情况下,对于多个具有相同参数数目的方法来说。应该尽量避免重载方法。"
目录
1 introduction  1
2 creating and destroying objects 5
item 1: consider static factory methods instead of constructors 5
item 2: consider a builder when faced with many constructor parameters 11
item 3: enforce the singleton property with a private constructor or an enum type 17

显示全部
用户评论
214睡前读物#1,谢谢Charlie
看到译者有俞黎敏果断看了英文人民邮电版的,不知道为什么网上都没货了
很久前读的 不错的书
读了两遍了,估计未来肯定还有第三遍第四遍第n遍...
把 Java 5 的各种坑都讲了一遍。
神作...影印版
看的是第三版,文字的质量不用说了,美工部分也非常不错,高亮和代码处理的非常舒服,推荐纸质版
作者文字有点别扭,有些句子需要仔细看才明白
补坑。
求书
收藏