欲加入创客群请加微信:cool-smiler ,备注:入群

高效 Java 第三版 中文权威指南:effctive-java-3rd-chinese

今日限免 JackLeon 6个月前 (04-26) 264次浏览 0个评论 扫描二维码

高效 Java 第三版 中文权威指南:effctive-java-3rd-chinese
《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称 Java 四大名著之一,不过第二版 2009 年出版,到现在已经将近 8 年的时间,但随着 Java 6,7,8,甚至 9 的发布,Java 语言发生了深刻的变化。

(译者)在这里第一时间翻译成中文版。供大家学习分享之用。

目录

📚 高效 Java 第三版
01. 考虑使用静态工厂方法替代构造方法
02. 当构造方法参数过多时使用 builder 模式
03. 使用私有构造方法或枚类实现 Singleton 属性
04. 使用私有构造方法执行非实例化
05. 依赖注入优于硬连接资源(hardwiring resources)
06. 避免创建不必要的对象
07. 消除过期的对象引用
08. 避免使用 Finalizer 和 Cleaner 机制
09. 使用 try-with-resources 语句替代 try-finally 语句
10. 重写 equals 方法时遵守通用约定
11. 重写 equals 方法时同时也要重写 hashcode 方法
12. 始终重写 toString 方法
13. 谨慎地重写 clone 方法
14. 考虑实现 Comparable 接口
15. 使类和成员的可访问性最小化
16. 在公共类中使用访问方法而不是公共属性
17. 最小化可变性
18. 组合优于继承
19. 要么设计继承并提供文档说明,要么禁用继承
20. 接口优于抽象类
21. 为后代设计接口
22. 接口仅用来定义类型
23. 类层次结构优于标签类
24. 支持使用静态成员类而不是非静态类
25. 将源文件限制为单个顶级类
26. 不要使用原始类型
27. 消除非检查警告
28. 列表优于数组
29. 优先考虑泛型
30. 优先使用泛型方法
31. 使用限定通配符来增加 API 的灵活性
32. 合理地结合泛型和可变参数
33. 优先考虑类型安全的异构容器
34. 使用枚举类型替代整型常量
35. 使用实例属性替代序数
36. 使用 EnumSet 替代位属性
37. 使用 EnumMap 替代序数索引
38. 使用接口模拟可扩展的枚举
39. 注解优于命名模式
40. 始终使用 Override 注解
41. 使用标记接口定义类型
42. lambda 表达式优于匿名类
43. 方法引用优于 lambda 表达式
44. 优先使用标准的函数式接口
45. 明智审慎地使用 Stream
46. 优先考虑流中无副作用的函数
47. 优先使用 Collection 而不是 Stream 来作为方法的返回类型
48. 谨慎使用流并行
49. 检查参数有效性
50. 必要时进行防御性拷贝
51. 仔细设计方法签名
52. 明智审慎地使用重载
53. 明智审慎地使用可变参数
54. 返回空的数组或集合,不要返回 null
55. 明智审慎地返回 Optional
56. 为所有已公开的 API 元素编写文档注释
57. 最小化局部变量的作用域
58. for-each 循环优于传统 for 循环
59. 了解并使用库
60. 若需要精确答案就应避免使用 float 和 double 类型
61. 基本数据类型优于包装类
62. 当使用其他类型更合适时应避免使用字符串
63. 当心字符串连接引起的性能问题
64. 通过接口引用对象
65. 接口优于反射
66. 明智审慎地本地方法
67. 明智审慎地进行优化
68. 遵守被广泛认可的命名约定
69. 只针对异常的情况下才使用异常
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常
71. 避免不必要的使用受检异常
72. 优先使用标准的异常
73. 抛出与抽象对应的异常
74. 每个方法抛出的异常都需要创建文档
75. 在细节消息中包含失败一捕获信息
76. 保持失败原子性
77. 不要忽略异常
78. 同步访问共享的可变数据
79. 避免过度同步
80. executor 、task 和 stream 优先于线程
81. 并发工具优于 wait 和 notify
82. 文档应包含线程安全属性
83. 明智审慎的使用延迟初始化
84. 不要依赖线程调度器
85. 优先选择 Java 序列化的替代方案
86. 非常谨慎地实现 Serializable
87. 考虑使用自定义的序列化形式
88. 保护性的编写 readObject 方法
89. 对于实例控制,枚举类型优于 readResolve
90. 考虑用序列化代理代替序列化实例

公众号 _meitu_1.jpg


温馨提示:若在升级会员或付费后阅读过程中遇到问题,请加客服微信号(cool-smiler)沟通解决,祝您生活愉快。
转载请注明原文链接:高效 Java 第三版 中文权威指南:effctive-java-3rd-chinese
喜欢 (0)
[1186664388@qq.com]
分享 (0)
关于作者:
创享视界(creativeview.cn)是一个带动全民颠覆八小时工作制,通过投稿把自己的创意智慧变现的方式创造被动收入,从而实现财务自由的平台。我们相信,创新思维不仅有助于打造更出色的产品,还可以让世界变得更美好,让人人受益。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
%d 博主赞过: