现在的位置: 首页 > 综合 > 正文

Effective java学习笔记

2018年02月01日 ⁄ 综合 ⁄ 共 1014字 ⁄ 字号 评论关闭

第二章
创建和销毁对象

 

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

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

抱歉!评论已关闭.