![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective Java 笔记
AlbumenJ
这个作者很懒,什么都没留下…
展开
-
Effective Java – Item 1 静态工厂
item1 · 静态工厂 静态工厂不是设计模式中的工厂方法 例子 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 优点 静态工厂有名字 /** * Constructs a newly allocated {@code Integer} obj...原创 2019-07-20 21:06:15 · 123 阅读 · 0 评论 -
Effective Java – Item 2 构建器
item2 · 构建器 多于4个初始化参数时考虑使用构建器 例子 public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private...原创 2019-07-20 21:07:24 · 105 阅读 · 0 评论 -
Effective Java – Item 6 避免创建不必要的对象
item6 · 避免创建不必要的对象 例子 String s = new String("abcd"); // DON'T DO THIS! 上述语句每次被执行的时候都创建一个新的 String 示例,但是这些创建对象的动作全都是不必要的。传递给 String 构造器的参数 ("abcd") 本身就是一个 String 实例。 改进后的版本如下所示: String s = "abcd"...原创 2019-07-20 21:08:04 · 139 阅读 · 0 评论 -
Effective Java – Item 9 try-with-resources 优先于 try-finally
item9 · try-with-resources 优先于 try-finally try-with-resources 可以更好地解决资源关闭问题 例子 static void copy(String src, String dst) throws IOException { try (InputStream in = new FileInputStream(src);...原创 2019-07-20 21:08:40 · 110 阅读 · 0 评论 -
Effective Java – Item 12 始终要覆盖 toString
item12 · 始终要覆盖 toString 函数原型 /** * Returns a string representation of the object. In general, the * {@code toString} method returns a string that * "textually represents" this obje...原创 2019-07-20 21:09:16 · 114 阅读 · 0 评论 -
Effective Java – Item 13 谨慎地覆盖 clone
item13 · 谨慎地覆盖 clone Cloneable 接口的目的是作为对象的一个 mixin 接口,表明这样的对象允许克隆。但,它并没有成功地达到这个目的,它的主要缺陷在于缺少一个 clone 方法,而 Object 的 clone 方法是受保护的。 Cloneable 作用 决定了 Object 中受保护的 clone 方法实现的行为 如果一个类实现了 Cloneable 接口,O...原创 2019-07-20 21:09:45 · 142 阅读 · 0 评论 -
Effective Java – Item 17 最小化可变性
item17 · 最小化可变性 不可变对象的优点 不可变对象本质上是线程安全的,它们不要求同步 可以共享不可变对象,甚至也可以共享它们的内部信息 为其他对象提供了大量的构建(?) 无代价地提供了失败的原子性 缺点 每个不同的值都需要一个单独的对象 可以使用可变配套类解决 如 String 的可变配套类是 StringBuilder 不可变原则 不要提供任何会修改对象状态的方法(se...原创 2019-07-20 21:10:16 · 153 阅读 · 0 评论 -
Effective Java – Item 18 复合优先于继承
item18 · 复合优先于继承 此处继承不包括接口继承、包内部使用继承 继承打破了封装性 子类依赖于父类的实现,父类变化时子类会遭破坏 public class InstrumentedHashSet<E> extends HashSet<E> { private int addCount = 0; public InstrumentedHashSet...原创 2019-07-20 21:10:47 · 141 阅读 · 0 评论