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