Effective Java 第二版
文章平均质量分 80
Jennire_Q
热爱技术,喜欢学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第一条:考虑用静态工厂方法代替构造器
首先看一下下面这个将boolean 转为Boolean对象的方法:public static Boolean valueof(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE;}利用静态工厂方法提供了客户端而不是构造器;静态工厂方法与构造器不同的优势:1、静态工厂方法有自定义的名称,产生的客户端代码更容易阅读。public cla...原创 2018-06-22 11:15:41 · 126 阅读 · 0 评论 -
第二条:遇到多个构造器参数时要考虑用构建器
静态工厂和构造器都有一个共同的局限性:他们都不能很好地扩展到大量的可选参数,例如有一个对象,有20个可选参数,如果使用静态工厂或者构造器就有可能需要写20个不同参数个数的构建实例的方法,这样的方式称为重叠构造。重叠构造器模式虽然说是可行的,但是当参数很多很多的时候,客户端代码会很难编写。这个时候还有第二种方法,就是JavaBeans模式,这种模式下调用无参构造函数,然后为每一个参数设置一个sett...原创 2018-06-22 11:59:42 · 171 阅读 · 0 评论 -
第三条:用私有构造器或者枚举类型强化Singleton属性
Singleton指仅仅被实例化一次的类,Java1.5之前,实现Singleton有两种方式,这两种方式都要把构造器保持为私有的,并导出公有的静态成员。第一种:公有静态成员是个final域public class Elvis { public static final Elvis INSTANCE=new Elvis(); private Elvis(){};}第二种:公有成员...原创 2018-06-22 14:59:37 · 375 阅读 · 0 评论 -
第四条:通过私有构造器强化不可实例化的能力
想要一个类不被外部实例化,就不能提供公有构造器,如果不提供显示的公有构造器,编译器会自动提供一个公有的,缺省的构造器,这种情况下,外部还是可以实例化类.解决方案就是,显示提供一个私有的构造器,这样外部就不能实例化它:public class A{ private A(){}}这样做也有副作用,它会使得类不能被子类化。...原创 2018-06-22 15:19:53 · 200 阅读 · 0 评论 -
第五条:避免创建不必要的对象
一般来说,我们最好能够重用对象,而不是每次需要的时候都去创建一个相同的对象。重用对象即快速,又流行,如果对象时不可变的,它就始终可以被重用。下面有一个反面的例子:String s=new String("string");该语句每次被执行都会创建一个新的String实例,但是这是不必要的,传递给String构造器的参数本身就是一个String实例,功能方面等同于构造器创建的所有对象,如果这是一个被...原创 2018-06-22 15:44:52 · 215 阅读 · 0 评论 -
第六条:消除过期的对象引用
为了直观,我们先上代码,哈哈哈哈哈:public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack(){ eleme...原创 2018-06-22 16:15:12 · 327 阅读 · 0 评论
分享