- 考虑用静态工厂代替构造器
1.相比构造器,静态方法能使用名称来区别
2.不必每次调用静态方法都创建一个对象。避免不必要的重复对象
3.静态方法可以返回原返回类型的任何子类型的对象。这样在选择返回对象的类时就有更大的选择
4.使创建参数化类型实例的时候代码更简单
- 遇到多个构造器参数要考虑使用构建器
1.重叠构造器
2.JavaBeans
3.Bulider Pattern
- 用是有构造器或者枚举类型强化Singleton属性
public static final 保证了对象的唯一性
- 通过私有构造器强化不可实例化的能力
私有确保累不可实例化
- 避免创建不必要的对象
如果对象不可变,那么它就可以被重用。可使用static代码块实例化可重用对象
- 消除过期的对象引用
及时置null。
一般而言,只要是类制剂管理内存,程序员就应该警惕内存泄漏问题。
内存泄漏的另一个来源是缓存。
第三个常见来源是监听器和其他回调。
- 避免使用终结方法(finalizer)
终结方法不可预测,不稳定。一般情况下不需要使用。System.gc()和System.runFinalization()这两个方法并不能保证终结方法一定会被调用。
显式调用终止方法需要加上try-finnally结构结合来使用。以确保即使异常也会调用终止方法。
如果子类覆盖了父类的finalizer而在子类的finalizer没有调用父类的finalizer,那么父类的finalizer方法永远都不会被执行