JAVA创建和销毁对象

虽然工作了两年仍然是个彩笔,就从effective java这本书开始学吧!

静态工厂方法

优点:有名称,不必每次调用创建新对象,可返回原返回类型的任何子类型对象,参数实例化更简洁。

缺点:如果不含共有的或受保护的构造器 就不能被实例化

不必每次创建新对象:感觉针对的是不可变类

参数实例化更简洁:类型推导(在JAVA7之后版本中有丰富了很多类型推导概念)

//较为繁琐的写法
Map<String, List<String>> map = new HashMap<String, List<String>>();

//若HashMap提供该静态工厂方法
public static <K, V> HashMap<K, V> newInstance(){
    return new HashMap<K, V>();
}

//通过静态工厂提供的简洁写法
Map<String, List<String>> map = HashMap.newInstance();

builder模式

核心在于创建对象时 “方便设置参数” 和 “和线程安全”。

1. 构造

    eg: new People(name,gender,age,address等);   设置参数却没有正好只有臃肿参数的构造时,无法挑选最恰当的构造

2. getter() setter()

    开放getter()和settting()方法,阻止了改类做成不可变的可能,这就需要保证线程安全(!?)

3. builer模式<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值