第五条——避免创建不必要的对象
一般来说,最好能重用对象而不是每次需要的时候就创建一个相同功能的对象。
1) 对于同时提供了静态工厂方法和构造器的不可变类,通常可以使用静态工厂方法而不是使用构造器,以避免创建不必要的对象。比如说,静态方法Boolean.valueOf(String)几乎总是优先于构造器Boolen(String)。
2) 除了上述的不可变对象,也应该重用哪些已知不会变化的可变对象。比如说Date这个对象,其值一旦计算计算出来就不会变化的,那么如果在一个程序中,我们需要判断某人是否是80后(is80s()),我们没有必要再每个实例的is80s()这个方法里每次都生一个Date对象(这个Date对象就是1980年的日期),我们可以有一个静态的初始块,这样只要生成一次对象就可以了。
3) 在设计模式中有一种模式叫适配器模式。适配器是这么一种对象:它把功能委托给一个后配对象,从而可以为后备的对象提供一个可以替代的接口,由于适配器除了后备对象外,没有其他的状态信息,那么针对某个给定的对象的特定适配器来说(是某个给定的对象),它不需要创建多个适配器实例。
4)在java1.5版本之后,有一种创建多余对象的新方法,称作自动装箱,对于自动装箱:要优先使用基本类型而不是装箱基本类型。