Effective java学习笔记

第二章 创建和销毁对象

 

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

.   我们知道有几种方法创建对象,最常用的就是用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值