一起来校对翻译友情链接Chapter 2. Creating and Destroying ObjectsChapter 4. Classes and InterfacesChapter 6. Enums and AnnotationsChapter 8. MethodsChapter 10. ExceptionsChapter 12. Serialization CS-Notes-PDF 额外资源 effective-java-3rd 英文版 品牌衣服一折购 📚 高效 Java 第三版 02. 当构造方法参数过多时使用builder模式04. 使用私有构造方法执行非实例化06. 避免创建不必要的对象08. 避免使用Finalizer和Cleaner机制 Chapter 3. Methods Common to All Objects 09. 使用try-with-resources语句替代try-finally语句11. 重写equals方法时同时也要重写hashcode方法13. 谨慎地重写 clone 方法 Chapter 4. Classes and Interfaces 17. 最小化可变性19. 要么设计继承并提供文档说明,要么禁用继承21. 为后代设计接口23. 类层次结构优于标签类25. 将源文件限制为单个顶级类 27. 消除非检查警告29. 优先考虑泛型31. 使用限定通配符来增加API的灵活性33. 优先考虑类型安全的异构容器 Chapter 6. Enums and Annotations 34. 使用枚举类型替代整型常量36. 使用EnumSet替代位属性38. 使用接口模拟可扩展的枚举40. 始终使用Override注解 Chapter 7. Lambdas and Streams 43. 方法引用优于lambda表达式45. 明智审慎地使用Stream47. 优先使用Collection而不是Stream来作为方法的返回类型 49. 检查参数有效性51. 仔细设计方法签名54. 返回空的数组或集合,不要返回 null56. 为所有已公开的 API 元素编写文档注释 Chapter 9. General Programming 57. 最小化局部变量的作用域59. 了解并使用库61. 基本数据类型优于包装类63. 当心字符串连接引起的性能问题65. 接口优于反射67. 明智审慎地进行优化 Chapter 10. Exceptions 70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常72. 优先使用标准的异常74. 每个方法抛出的异常都需要创建文档76. 保持失败原子性 78. 同步访问共享的可变数据80. executor 、task 和 stream 优先于线程82. 文档应包含线程安全属性84. 不要依赖线程调度器 Chapter 12. Serialization 85. 优先选择 Java 序列化的替代方案87. 考虑使用自定义的序列化形式89. 对于实例控制,枚举类型优于 readResolve