Effective Java读书笔记(目录)

来源:互联网 发布:三年经验程序员薪资 编辑:程序博客网 时间:2024/05/18 03:49

一、创建和销毁对象

第1条考虑用静态工厂方法代替构造器
第2条遇到多个构造参数时要考虑用构建器Builder模式
第3条用私有构造器或者枚举类型强化Singleton属性
第4条通过私有构造器强化不可实例化的能力
第5条避免创建不必要的对象
第6条消除过期的对象引用
第7条避免使用终结方法

二、嵌套类

第22条嵌套类

三、泛型

第23条请不要在新代码中使用原生态类型
第24条消除非受检警告
第25条列表优先于数组
第26条优先考虑泛型需要重新读
第27条优先考虑泛型方法需要重新读
第28条利用有限制通配符来提升API的灵活性需要重新读
第29条优先考虑类型安全的异构容器需要重新读

四、枚举和注解

第30条用enum代替int常量
第31条用实例域代替序数
第32条用EnumSet代替位域
第33条用EnumMap代替序数索引
第34条用接口模拟可以伸缩的枚举
第35条注解优先于命名模式
第36条坚持使用Override注解
第37条用标记接口实现类型

五、方法

第38条检查参数的有效性
第39条必要时进行保护性拷贝
第40条谨慎设计方法签名
第41条慎用重载
第42条慎用可变参数
第43条返回零长度的数组或者集合而不是null
第44条为所有导出的API元素编写文档注释

六、通用程序设计

第45条将局部变量的作用域最小化
第46条for-each循环优先于传统的for循环
第47条了解和使用标准类库
第48条如果需要精确的答案请避免使用float和double
第49条基本类型优先于装箱基本类型
第50条如果其他类型更适合则尽量避免使用字符串
第51条当心字符串连接的性能
第52条通过接口引用对象
第53条接口优先于反射机制
第54条谨慎地使用本地方法
第55条谨慎地进行优化
第56条遵守普通接受的命名惯例

七、异常

第57条只针对异常的情况才使用异常
第58条对可恢复的情况使用受检异常对编程错误使用运用时异常
第59条避免不必要地使用受检异常
第60条优先使用标准异常
第61条抛出与抽象对象相对应的异常
第62条每个方法抛出的异常都要有文档描述
第63条异常信息中要包含足够详细的异常细节消息
第64条努力使失败保持原子性
第65条不要忽略异常

八、并发

第66条同步访问共享的可变数据
第67条避免过度同步
第68条executor和task优先于线程
第69条并发工具优先于wait和notify
第70条线程安全性的文档化
第71条慎用延迟初始化
第72条不要依赖于线程调度器
第73条避免使用线程组

九、序列化

第74条谨慎地实现Serializable接口
第75条考虑使用自定义的序列化形式
第76条保护性地编写readObject方法
第77条对于实例控制枚举类型优先于readResolve
第78条考虑用序列化代理代替序列化实例

作者:jiankunking 出处:http://blog.csdn.net/jiankunking

2 0
原创粉丝点击