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 · 132 阅读 · 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 · 116 阅读 · 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 · 148 阅读 · 0 评论 -
Effective Java – Item 9 try-with-resources 优先于 try-finally
item9 · try-with-resources 优先于 try-finallytry-with-resources 可以更好地解决资源关闭问题例子 static void copy(String src, String dst) throws IOException { try (InputStream in = new FileInputStream(src);...原创 2019-07-20 21:08:40 · 119 阅读 · 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 · 121 阅读 · 0 评论 -
Effective Java – Item 13 谨慎地覆盖 clone
item13 · 谨慎地覆盖 cloneCloneable 接口的目的是作为对象的一个 mixin 接口,表明这样的对象允许克隆。但,它并没有成功地达到这个目的,它的主要缺陷在于缺少一个 clone 方法,而 Object 的 clone 方法是受保护的。Cloneable 作用决定了 Object 中受保护的 clone 方法实现的行为如果一个类实现了 Cloneable 接口,O...原创 2019-07-20 21:09:45 · 157 阅读 · 0 评论 -
Effective Java – Item 17 最小化可变性
item17 · 最小化可变性不可变对象的优点不可变对象本质上是线程安全的,它们不要求同步可以共享不可变对象,甚至也可以共享它们的内部信息为其他对象提供了大量的构建(?)无代价地提供了失败的原子性缺点每个不同的值都需要一个单独的对象可以使用可变配套类解决如 String 的可变配套类是 StringBuilder不可变原则不要提供任何会修改对象状态的方法(se...原创 2019-07-20 21:10:16 · 162 阅读 · 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 · 150 阅读 · 0 评论