资源名称:Effective Java 第二版
内容简介:
本书介绍了Java编程中78条非常实用的经验规则,涵盖了大多数开发人员每天面临的问题的解决方案。通过对Java平台设计专家使用的技术的全面描述,揭示了应该做什么,不应该做什么来生成清晰、强大和高效的代码。
本书中的每一条规则都以一篇简短而独立的小文章的形式出现,并通过例子代码进一步解释。本书内容全面,结构清晰,解释详细。可作为技术人员的参考书。
作者简介:
Joshua Google公司首席Java架构师Bloch。是Jolt奖的获得者。他曾是Sun公司的杰出工程师,也是Transarc公司的高级系统设计师。Bloch带领团队设计和实现了Java平台的无数特点,包括JDK 5.0语言增强版和获奖Java Collections Framework。他的工作还包括:《Java Puzzlers》、《Java Concurrency in Practive》等。
资源目录:
译者序
序
前言
致谢
第1章 引言
第2章 对象的创造和销毁
第一条考虑用静态工厂代替结构器
第二条:在遇到多个构造器参数时,应考虑使用构造器
第三条强化Singleton属性的私有结构器或枚举类型
第四条通过私有结构器加强不可实例化的能力
第五条:避免创建不必要的对象
第六条引用消除过期对象
第七条避免使用终结方法
第3章 对所有对象来说都是一种常见的方法
第八条覆盖equals时,请遵守一般协议
第九条覆盖equals时,总要覆盖hashcode
第十条总是覆盖tostring
第十一条clone应当谨慎覆盖
第十二条考虑实现Comparable接口
第4章 类和接口
第十三条最小化类别和成员的可访问性
第十四条访问方法应当在公共类别中使用,而不是公共域
第十五条最小化可变性
第十六条复合优先于继承
第十七条:要么为继承而设计,要么提供文件说明,要么禁止继承
第十八条接口优于抽象类
第十九条接口仅用于定义类型
第二十条类级优于标签类
第二十一条用函数对象表示策略
第二十二条静态成员优先:
第5章 泛型
第二十三条请不要在新代码中使用原生态类型
第二十四条消除非被检警告
第二十五条列表优先于数组
第二十六条泛型优先:
第二十七条泛型方法优先
第二十八条使用有限的通配符来提高API的灵活性
第二十九条异构容器安全类型优先考虑
第6章 枚举和注解
第三十条用enum代替int常量
第三十一条用实例域代替序数
第三十二条用Enumset代替位置
第三十三条用Enummap代替序数索引
第三十四条可伸缩枚举用接口模拟
第三十五条注释优先于命名模式
第三十六条坚持使用Override注释
第三十七条用标记接口定义类型
第7章 方法
第三十八条检查参数的有效性
第三十九条必要时进行保护性复制
第四十条:谨慎设计方法签名
第四十一条慎用重载
第四十二条谨慎使用可变参数
第四十三条返回零长度的数组或者集合,而不是:null
第四十四条为所有导出的API元素编写文档注释
第8章 通用程序设计
第四十五条最小化局部变量的作用域
第46条:for-each循环优先于传统的for循环
第四十七条理解和使用类库
第四十八条如需准确答案,请避免使用float和double
第四十九条基本类型优先于包装基本类型
第五十条:如果其它类型比较合适,尽量避免使用字符串
第五十一条:当心字符串连接的性能
第五十二条通过界面引用对象
第五十三条接口优先于反射机制
第五十四条:谨慎使用本地方法
第五十五条认真优化
第五十六条遵守一般接受的命名惯例
第9章 异常
第五十七条异常只用于异常情况
第五十八条可恢复情况使用异常,编程错误使用运行异常
第五十九条避免不必要的异常使用
第六十条优先使用标准异常
第六十一条抛出与抽象对应的异常
第六十二条每种方法抛出的异常必须有文档
第六十三条在细节信息中包含可以捕获失败的信息
第六十四条努力使失败保持原子性
第六十五条:不要忽视异常:
第10章 并发
第六十六条同步访问共享的可变数据
第六十七条避免过度同步
第六十八条优先干线程executor和task
第六十九条并发工具优先于wait和notify
第七十条线程安全文档化
第七十一条延迟初始化应当谨慎使用
第七十二条不依赖线程调度器
第七十三条避免使用线程组
第11章 序列化
第七十四条Serializable接口应谨慎实现
第七十五条考虑使用自定义序列形式
第七十六条保护性编写readobject方法
第七十七条对于实例控制,枚举类型优先于readresolve
第七十八条考虑用序列化代替序列化实例
附录 第一版和第二版条目对比
对比中英文术语
参考文献
资源截图:
暂无评论内容