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