effective java读书笔记

  1. 从Java 8版本开始,接口中不能包含静态方法的限制成为历史,因此一般没有任何理由给接口提供一个不可实例化的伴生类,已经被放在这种类中的许多公有的静态成员,应该被放到接口中去。但是要注意,仍然有必要将这些静态方法背后的大部分实现代码,单独放进一个包级私有的类中 这是因为在 Java 中仍要求接口的所有静态成员都必须是公有的 Java 中允许接口有私有的静态方法,但是静态域和静态成员类仍然需要是公有的。

  2. 单元素枚举类型通常是实现单例的最佳方法。 注意,如果你的单例必须扩展一个超类而不是 Enum(尽管你可以声明一个 Enum 来实现接口),你就不能使用这种方法。

  3. 通过私有构造器强化不可实例化的能力。这个习惯用法也防止了类被子类化,这是一个副作用。所有子类构造函数都必须调用超类构造函数,无论是显式的还是隐式的,但这种情况下子类都没有可访问的超类构造函数可调用。

  4. Java 枚举类型背后的基本思想很简单:它们是通过 public static final 修饰的字段为每个枚举常量导出一个实例的类。枚举类型实际上是 final 类型,因为没有可访问的构造函数。客户端既不能创建枚举类型的实例,也不能扩展它,所以除了声明的枚举常量之外,不能有任何实例。换句话说,枚举类型是实例受控的类(参阅第 6 页,Item-1)。它们是单例(Item-3)的推广应用,单例本质上是单元素的枚举。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值