给我感觉就是这本书666。
1.使用静态工厂方法替代构造方法,静态工厂方法不同于简单和抽象工厂方法,简而言之它是用来创建实例的。它有如下好处:它有名称,如果构造方法想构造不同的对象,仅仅通过重载实际上别人很难看明白;它可以不必重复创建实例,这里就是单例,所谓的单例就是说,构造方法私有,属性设为静态(static),再通过静态工厂方法返回实例;它可以返回原类的子类,这里的原理就是多态了。简而言之,使用静态工厂方法替代构造方法。
2.使用私有构造函数强化单例。单例私有化构造函数,私有化类实例,再通过静态工厂方法返回实例。
3.避免创建重复的对象。这个错误我经常会犯。在类方法里,当我们需要频繁调用这个方法时候,这里面如果有每次都需要创建的对象,且创建这个对象的代价特别昂贵(比如Calendar),应该把这个对象设置为静态成员,类似于单例的懒汉模式,在调用时候初始化。
4.清除过期的对象引用。比如有一个栈
它是一个数组a,和栈指针i组成的,入栈的时候,先看看栈指针和数组a的长度是否相等,如果相等就扩容,扩大成原数组的2倍-1大,然后栈指针+1,且赋值;出栈的时候检查栈指针是否为0,如果为0,返回一个null。如果不为0,让a[i]=null,栈指针-1;在这里如果说a[i]=null不去做的话,就会导致内存泄漏。
5.改写equals要满足5点才行,自反,一致,传递,等,并且要改写hashcode,toString()方法通常都是要改写的
6.不要随意使用序列化,因为序列化会导出api,这耗费性能