java学习笔记
厉兵秣马的菜鸟
路阻且长,唯厉兵秣马,勤勤恳恳,一步一个脚印!
展开
-
Effective Jave——第1条: 考虑用静态工厂方法代替构造函数
使用静态工厂来提供一个类的客户端public static Boolean valueOf(boolean b){ return b?Boolean.True:Boolean.False;}静态工厂方法四大优点:它们拥有名称:命名恰当的静态工厂方法更容易使用。而使用构造器需要查看类源码,确定应该调用具有哪些参数的构造器。 BigInteger.probablePrime(bitLe原创 2017-01-03 17:34:14 · 327 阅读 · 0 评论 -
Effective Jave——第2条: 遇到多个构造器参数时考虑使用构建器(Builder)
使用静态工厂方法或者构造器有个共同的局限性:他们都不能很好的拓展到大量可选参数的情况。当有多个可选参数时,我们通常有两种方式来实例化相应的对象。1.重叠构造器模式public A(int a){}public A(int a, int b){}public A(int a, int b, int c){}使用这种方式,通常需要在构造器中写入许多你并不想要的参数,但为了匹配构造器,又不得不写。总的原创 2017-01-04 10:37:26 · 311 阅读 · 0 评论 -
Effective Jave——第3条:用私有构造类或者枚举类实现Singleton
Singleton实例化一次的类,常用于代表那些本质上唯一的系统组件。在Java 1.5之前,有两种方式来实现Singleton,这两种方法均将构造函数设为私有,并且公有的静态成员。1.将final域设置为公有public class Elivis { public static final Elivis INSTANCE= new Elivis(); private Elivis(原创 2017-01-04 11:16:03 · 299 阅读 · 0 评论 -
Effective Jave——第4条:通过私有构造器强化不可实例化的能力
工具类(抽象类)不希望被实例化。然而缺少显式构造器的情况下,编译器会自动提供一个公有的无参构造器,对于用户而言,这个构造器和其他构造器并无不同。因此经常会看到一些被无意识实例化的类。企图将类做成抽象类来强制该类不可被实例化,这是行不通的。该类可以被子类化,子类可以被实例化,这样做会误导,以为这种类是为了继承而设计的。我们只需要为类提供一个显式的私有构造,它就不可以被实例化了:public class原创 2017-01-04 14:48:26 · 295 阅读 · 0 评论 -
Effective Jave——第5条:避免创建不必要的对象
一般来说,最好能够重用现有的对象而不是每次需要时都创建一个新的。重用既快速又流行。如果对象是不可变的,它就始终可以被重用。对于同时拥有静态工厂方法和构造器的不可变类而言,通常使用静态方法而非构造器来创建对象。例如Bolean.valueOf(String)肯定会优于Bolean(String)。并不是说创建对象的代价很高,只是在有些情况下,创建对象会变得非常昂贵,最典型的一个例子就是连接数据库时。原创 2017-01-06 09:48:01 · 295 阅读 · 0 评论