Effective Java读书笔记01-05

01 Consider static factory methods instead of constructors

使用静态工厂方法代替参数很多并且参数类型一样的构造方法, 这样用户会比较清晰的构造对象.

02 Consider a builder when faced with many constructor parameters

使用构造器模式代替参数很多的构造器方法, 这样用户可以根据自己的用途构造对象, 不用每次都加上自己用不到的参数就构造对象.

03 Enforce the singleton property with a private constructor or an enum type

作者建议使用枚举类创建单例对象, 使用简单, 并且不需要考虑序列化等问题. spring注入的bean默认都是单例的, 它是如何实现的? 后面看下.

04 Enforce noninstantiability with a private constructor

工具类一般只包含静态字段和静态方法, 对于这样的工具类强制使用一个私有构造方法, 防止用户初始化该类. 更强一点是在私有构造方法中抛出异常, 这样就可以防止用户通过反射等手段初始化对象.

05 Avoid creating unnecessary objects

  1. 避免创建不必要的对象, 比如通过new String(“xxx”) 创建字符串类型, 实际创建了两个对象, 不过一般工作中大家也没有这么用的, 都是直接赋值 String s = “xxxx”. 这种比较明显的问题一般都会注意.
  2. 还有一种不明显的. 在对基础类型自动装箱时会创建装箱类型对象, 这个是平常工作中不太在意的点(一般只关注拆箱的NPE问题), 我们应该在入口处做好类型装换, 避免在业务处理中频繁的拆箱装箱.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值