【java】Effective Java01
第一条:考虑用静态工厂方法代替构造器
类似于 Bolean.valueOf(boolean b)
第二条:遇到多个构造器参数时要考虑用构建器
/** * @Title: person.java * @Package com.himtech.model * @Description: TODO(用一句话描述该文件做什么) * @author hmzhangxaut@163.com * @date 2016年11月24日 下午5:24:51 * @version V1.0 */ package com.himtech.model; /** * ClassName: person <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON(可选). <br/> * date: 2016年11月24日 下午5:24:51 <br/> * * @author hmzhang * @version * @since JDK 1.7 */ public class Person { private int age; private String address; private String name; private String height; public static class Builder{ private int age; private String address = ""; private String name = "" ; private String height = ""; public Builder(int age, String address){ this.age = age; this.address = address; } public Builder address(String val){ this.address = val; return this; } public Builder name(String val){ this.name = val; return this; } public Builder height(String val){ this.height = val; return this; } public Person build(){ return new Person(this); } } private Person(Builder builder){ address = builder.address; name = builder.name; height = builder.height; } @Override public String toString() { return "Person [age=" + age + ", address=" + address + ", name=" + name + ", height=" + height + "]"; } }
第三条:用私有构造器或者枚举类型强化Singleton属性
第四条:通过私有构造器强化不可实例化的能力
第五条:避免创建不必要的对象
String s = new String("age");
可以使用静态块
static{ }
第六条:消除过期的对象引用