Effective Java Reading Notes - 1
最近感觉自己对于Java越来越陌生了,遂看EffectiveJava来温习一下。这本书就是一个清单,分为90个item。
Introduction
简介里面就简单说明了一下本书的重点,重点不在于如何写出高性能的Java代码,而是写出clear,correct,usable,robust,flexible,maintainable的代码。
Creating and Destroying Objects
Item 1: Consider static factory methods instead of constructors
获取一个类的实例的传统方式是提供构造方法。另外一种方式是创建静态工厂方法,这里的工厂并不是设计模式中的工厂。之前有个同事喜欢使用静态工厂方法来创建类(Luzihao5),具体看到他的代码就可以知道。
|
|
下面列举一下静态工厂方法获取类实例的优点和缺点:
- advantages:
- 自定义方法名称:构造方法只能是类名称,而静态工厂方法可以取具体含义的名称。这点确实,如果有多个构造函数的话,往往需要去找到底使用哪个构造函数来创建实例。
- 不需要每次都创建一个新的对象:如上面的例子,每次只需要返回定义好的常量即可。
- 静态方法返回的类型可以是定义返回类型的子类
Item 6: Avoid creating unnecessary objects
如题名,避免创建不必要的对象。
- 以String作为例子:
|
|
- 以正则表达式的匹配为例:
|
|
- 使用基础类型而不是包装类