易截截图软件、单文件、免安装、纯绿色、仅160KB

《Effective Java》笔记

第一章 引言
(By wind5shy:http://blog.csdn.net/wind5shy)
 
第二章 创建和销毁对象
(By wind5shy:http://blog.csdn.net/wind5shy)
第1条:考虑用静态工厂方法代替构造函数
 
好处:
静态工厂方法有名字,表达更清楚。
不需创建新的对象。
可以返回原返回类型的子类型对象。应用:1.返回类型定义为接口,则返回的所有实例对象的细节都可以被隐藏,如Collections。2.返回对象所属的类在写该静态方法时可以不存在。
缺点:
类如果不含public或者protected构造函数,就不能被子类化,如不能实例化Collections的任一实现类。
与其他静态方法没有区别,不像构造函数一样明显。但使用标准的命名习惯:valueOf和getInstance,可以客服一定的缺点。
 
第2条:使用私有构造函数强化singleton属性
 
将构造函数设为private是为了避免其他类调用已确保唯一性(不写显示构造函数则系统提供默认构造函数且为public!)。
两种实现singleton的方法:
1.
public static final Singleton INSTANCE = new Singleton();
private Singleton(){}
构造方法只在初始化INSTANCE时被调用一次。
2.
private static final Singleton INSTANCE = new Singleton();
private Singleton(){}
public static getInstance(){ return INSTANCE};
1好处在于类成员明确表明了类是一个singleton;而2则提供了灵活性,允许在不改变API的情况下改变类是否为singleton。
singleton类在序列化的时候需要提供readResolve()确保singleton性,否则一个序列化的实例在每次反序列化的时候,都会导致创建一个新的实例。
private Object readResolve() throws ObjectStreamException{ return INSTANCE;}
 
第3条:通过私有构造函数强化不可实例化的能力
 
       缺点:类不能被子类化,因为子类的构造函数需要调用超类的构造函数。
 
第4条:避免创建重复的对象
 
       String s = “s”;优于String s = new String(“s”);因为后者每次都创建新的对象而前者不是。
       同时提供静态工厂函数和构造函数的非可变类,使用静态工厂函数可以避免每次创建新的对象,如Boolean.valueOf(String)优于Boolean(String)。
       不会被修改的可变类
  &nbs


相关文档:

java线程

线程的创建和启动
Java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。
Thread类是实现了Runnable接口的一个实例,它代表 ......

JAVA方法调用效率差别

  最近需要做一些JAVA底层操作,为了尽可能提高效率做了如下测试。
  在同一个类中建立普通的PUBLIC方法和PUBLIC STATIC 方法两种,并使用JUnit进行多次循环。最终证明使用对象的方式调用效率高。
  上结果。
起始时间Fri Mar 05 10:15:37 CST 2010结束时间Fri Mar 05 10:15:38 CST 2010时间间隔891
起始时间Fri ......

java基础入门学习笔记(一):bubblesort算法个人学习


public class bubblesort {
 public static void main(String[] args) {
 
   int array[]=new int[]{1,5,9,4,6,2};   
   
   int m;
  
   for(int i=0;i<array.length;i++){
    System.out.print(arra ......

[备份]java中XML解析利器 dom4j的使用简介


要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/
目前最新dom4j包下载地址: http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip
解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar.
以下 ......

利用Lucene搜索Java源代码

某些网站允许软件开发社团通过发布开发者指南、白皮书、FAQs【常见问题解答】和源代码以实现信息的共享。随着信息量的增长,和几个开发者贡献出自己的知识库,于是网站提供搜索引擎来搜索站点上现有的所有信息。虽然这些搜索引擎对文本文件的搜索可以做的很好,但对开发者搜索源代码做了比较严格的限制。搜索引擎认为源代码 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号