Effective_Java_Index
基于《Effective Java 第三版》的读书笔记
创建和销毁对象
- 第1条:用静态工厂方法代替构造器
- 第2条:遇到多个构造参数时要考虑用构建器
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第4条:通过私有构造器强化不可实例化的能力
- 第5条:优先考虑依赖注入来引用资源
- 第6条:避免创建不必要的对象
- 第7条:消除过期的对象引用
- 第8条:避免使用终结方法
- 第9条:try-with-resources优先于try-finally
对于所有对象都通用的方法
- 第10条:覆盖equals时请遵守通用约定
- 第11条:覆盖equals时总要覆盖hashCode
- 第12条:始终要覆盖toString
- 第13条:谨慎地覆盖clone
- 第14条:考虑实现Comparable接口
类和接口(TODO)
- 第15条:使类和成员的可访问性最小化
- 第16条:在公有类而非公有域中使用访问方法
- 第17条:使可变性最小化
- 第18条:复合优先于继承
- 第19条:要么设计继承并提供文档说明,要么禁止继承
- 第20条:接口优于抽象类
- 第21条:为后代设计接口
- 第22条:接口只用于定义类型
- 第23条:类层次优于标签类
- 第24条:静态成员类优于非静态成员类
- 第25条:限制源文件为单个顶级类
泛型(TODO)
- 第23条:请不要在新代码中使用原生态类型
- 第24条:消除非受检警告
- 第25条:列表优先于数组
枚举和注解(TODO)
- 第30条:用enum代替int常量
- 第36条:坚持使用Override注解
Lambda和Stream(TODO)
- 第42条:Lambda优先于匿名类
- 第43条:方法引用优先于Lambda
- 第44条:坚持使用标准的函数接口
- 第45条:谨慎使用Stream
- 第46条:优先选择Stream中无副作用的函数
- 第47条:Stream要优先用Collection作为返回类型
- 第48条:谨慎使用Stream并行
方法(TODO)
- 第54条:返回零长度的数组或者集合,而不是null
通用程序设计(TODO)
- 第57条:将局部变量的作用域最小化
- 第58条:for-each循环优先于传统的for循环
- 第59条:了解和使用类库
- 第63条:了解字符串连接的性能
异常(TODO)
- 第69条:只针对异常的情况才使用异常
并发(TODO)
序列化(TODO)
其他参考
- Effective Java通俗理解
还没有评论,来说两句吧...