Effective java学习笔记

    技术2025-12-14  13

    第二章 创建和销毁对象

     

    第一条:考虑用静态工厂方法代替构建器

    .   我们知道有几种方法创建对象,最常用的就是用new+构建器()创建对象。(其他 运用反射手段,调用对象的clone()方法,序列化的readObject()也可以创建对象)。但是如果程序经常请求创建相同的对象,用new的话性能就会很低(每new一个对象都占用一块内存)。 于是我们可以用静态工厂方法代替new。例如: public static ClassName getInstance(){        return new ClassName(); }

    他的优点有:1,有名称 getInstance(可以换个见名知意的名字);

                      2,只占用一份内存(static);

                3,可以返回类型的任何子类型的对象;

                         4,参数化类型实例时,可使代码变得更加简洁。  

    第二条:遇到多个构建器参数时要考虑用构建器

           Builder模式。。。

    第三条:用私有构建器或者枚举类型强化Singleton属性

           Public class Single{

           Private static final Single instance  = new Single();

           Private Single(){}

           Public static Single getInstance(){

                  Return instance;

    }

    }

    或者:

    Public enum Single{

           INSTANCE;//The best way!!!

    }

    第四条:通过私有构建器强化不可实例化的能力

           有些工具类只提供静态域及方法,并不需要实例化。如MathArrays类等等。我们可以通过私有化构建器阻止他的实例化!

    Public class Test{

           Private Test(){

    //调用此构建方法时便抛出异常,完全阻止实例化!

    Throw new AssertionError();

    }

    }

    第五条:避免创建补必要的对象

    1:不要用String str = new String”test”);用String str = test”即可;

    2:考虑用static块;  static {}//只用一次

    第六条:消除过期的对象引用

           Java虽然有自动垃圾回收功能,但也有内存泄露产生。

    第七条:避免使用终结方法 finalizer

    最新回复(0)