![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective java
文章平均质量分 62
请叫我青哥
所有文章无条件开放,顺手给个赞不为过吧
展开
-
第二十条:与抽象类相比,优先选择接口
总而言之,要定义支持实现的类型,原创 2024-07-04 21:23:44 · 844 阅读 · 0 评论 -
第十九条:要么为继承而设计并提供文档说明,要么就禁止继承
如果你决定在一个为了继承而设计的类中实现Serializable,并且该类有一个readResolve或者writeReplace方法,就必须使readResolve或者writeReplace成为受保护的方法,而不是私有的方法。如果类是为了继承而被设计的,无论实现这其中的那个接口通常都不是一个好主意,因为他们它一下实质性的负担转嫁到扩展这个类的程序员的身上。当设计一个可能被广泛使用的用于继承的类时,要意识到,我们对写在文档中的方法的自身使用情况,以及隐含在受保护的方法和字段的实现决策做出了永久性的承诺。原创 2024-06-26 22:08:38 · 341 阅读 · 0 评论 -
第十七条:使可变性最小化
不可变的类变成 final 的另 一种办法就是,让类的所有构造器都变成私有的或者包级私有的,并添加公有的静态工厂( static factory )来代替公有的构造器(详见第 1 条)。虽然从技术上讲,允许不可变的类具有公有的 final域,只要这些域包含基本类型的值或者指向不可变对象的引用,但是不建议这样做,因为这样会使得在以后的版本中无法再改变内部的表示法。你应该总是使 一些小的值对象。这种技巧可以很好地工作,因为对象是不可变的,它的不可变性保证了这些计算如果被再次执行,就会产生同样的结果。原创 2024-06-17 21:57:24 · 467 阅读 · 0 评论 -
第十三条:谨慎使用clone方法
不到万不得已,不要轻易使用clone方法,容易使代码变得不稳定原创 2024-06-04 21:19:28 · 202 阅读 · 0 评论 -
第九条:与try-finally相比,首选try-with-resources
在处理必须关闭资源时,应该总是选择try-with-resources,这样得到的代码更短、更清晰,生成的异常也更有价值。原创 2024-05-23 21:30:14 · 113 阅读 · 1 评论 -
第4条:通过私有构造器强化不可实例化的能力
很多人第一时间会有疑问,java中为啥防止类被实例化?new一个类用get set实在太爽了,为啥不给new?原创 2024-05-09 21:46:24 · 387 阅读 · 1 评论 -
Effective java 第一章 引言
术语“导出的API”(exported API),或者简单地说API,是指类、接口、构造器(constructor)、成员和序列化形式 (serialized form),程序员通过它们可以访问类、接口或者包。使用API编写的员被称为 API 的用户(user),在类的实现中使用了 API的类被称为该API的客户端(client)。不严格地讲,一个包的导出 API是由该包中的每个公有(public)类或者接口中所有公有的或者受保护的 (protected)成员和构造器组成。签名不包括方法的返回类型。原创 2023-11-21 19:41:46 · 45 阅读 · 0 评论 -
Effective java 阅读感想及笔记
从事java两年多时间,但对于系统结构还是认为不是太懂,刚好同事推荐了这本《Effective java》,之前一直在忙没有整理,现阶段到明年,这边会系统整理好笔记,直到更新整本书,当然笔记中应该会出现错误,也请读者及时发现指正。原创 2023-11-21 19:01:21 · 38 阅读 · 0 评论