Effective Java的78条规范

最近刚看完了Effective Java,给自己列个目录,方便以后复习。

------------------------------------------------------------------------

第一条:考虑使用静态工厂替代构造器

第二条:遇到多个构造器参数时要考虑使用构建器
第三条:用私有构造器或者枚举类型强化Singleton属性
第四条:通过私有构造器强化不可实例化的能力
第五条:避免创建不必要的对象
第六条:消除过期对象的引用
第七条:避免使用终结方法(finalize)
第八条:覆盖equals时请遵守通用约定
第九条:覆盖equals时总要覆盖hashCode
第十条:始终要覆盖toString
第十一条:谨慎的覆盖clone
第十二条:考虑实现Comparable接口
第十三条:使类和成员的可访问性最小
第十四条:在公有类中使用访问方法而非公有域
第十五条:使可变性最小化
第十六条:复合优先于继承
第十七条:要么为继承而设计,并提供文档说明,要么就禁止继承
第十八条:接口优于抽象类
第十九条:接口只用于定义类型
第二十条:类层次优于标签类
第二十一条:用函数对象表示策略
第二十二条:优先考虑静态成员类
第二十三条:请不要在新代码中使用原生态类型
第二十四条:消除非受检警告
第二十五条:列表优先于数组
第二十六条:优先考虑泛型
第二十七条:优先考虑泛型方法
第二十八条:利用有限制通配符来提升API的灵活性
第二十九条:优先考虑类型安全的异构容器
第三十条:使用enum代替int常量
第三十一条:用实例域代替序数
第三十二条:用EnumSet代替位域
第三十三条:用EnumMap代替序数索引
第三十四条:用接口模拟可伸缩的枚举
第三十五条:注解优先于命名模式
第三十六条:坚持使用Override注解
第三十七条:用标记接口定义类型
第三十八条:检查参数的有效性
第三十九条:必要时进行保护性拷贝
第四十条:谨慎设计方法签名
第四十一条:慎用重载
第四十二条:慎用可变参数
第四十三条:返回零长度的数组或者集合,而不是null
第四十四条:为所有导出的API元素编写文档注释
第四十五条:将局部变量的作用域最小化
第四十六条:for-each循环优先于传统的for循环
第四十七条:了解和使用类库
第四十八条:如果需要精确的答案,请避免使用float和double
第四十九条:基本类型优先于装箱基本类型
第五十条:如果其他类型更适合,则尽量避免使用字符串
第五十一条:当心字符串连接的性能
第五十二条:通过接口引用对象
第五十三条:接口优先于反射机制
第五十四条:谨慎地使用本地方法
第五十五条:谨慎地进行优化
第五十六条:遵守普遍接受的命名惯例
第五十七条:只针对异常的情况才使用异常
第五十八条:对可恢复的情况使用受检异常,对编程错误使用运行时异常
第五十九条:避免不必要地使用受检的异常
第六十条:优先使用标准的异常
第六十一条:抛出与抽象相对应的异常
第六十二条:每个方法抛出的异常都要有文档
第六十三条:在细节消息中包含能捕获失败的信息
第六十四条:努力使失败保持原子性
第六十五条:不要忽略异常
第六十六条:同步访问共享的可变数据
第六十七条:避免过度同步
第六十八条:executor和task优先于线程
第六十九条:并发工具优先于wait和notify
第七十条:线程安全性的文档化
第七十一条:慎用延迟初始化
第七十二条:不要依赖于线程调度器
第七十三条:避免使用线程组
第七十四条:谨慎地实现Serializable接口
第七十五条:考虑使用自定义的序列化形式
第七十六条:保护性地编写readObject方法
第七十七条:对于实例控制,枚举类型优先于readResolve
第七十八条:考虑用序列化代理代替序列化实例



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值