避免创建不必要的对象
避免创建不必要的对象 在每次需要时重用一个对象而不是创建一个新的相同功能对象通常是恰当的。重用可以更快更流 行。如果对象是不可变的(详见第 17 条),它总是可以被重用。 作为一个不应该这样做的极端例子,请考虑以下语句: x String s = new String("bikini"); 语句每次执行时都会创建一个新的 String 实例,而这些对象的创建都不是必需的。String 构造方法 ("bikini") 的参数本身就是一个 bikini 实例,它与构造方法创建的所有对象的功能相同。如果 这种用法发生在循环中,或者在频繁调用的方法中,就会毫无必要地创建数百万个 String 实例。 改进后的版本如下 xxxxxxxxxx String s = "bikini"; 通过使用静态工厂方法(详见第 1 条)和构造器,可以避免创建不需要的对象。例如,工厂方法 Boolean.valueOf(String) 比构造方法 Boolean(String) 更可取,后者在 Java 9 中被弃用。构 造方法每次调用时都必须创建一个新对象,而工厂方法永远不需要这样做,在实践中也不需要。除了重 用不可变对象,如果知道它们不会被修改,还可以重用可变对象。 假设你想写一个方法来确定一个字符串是否是一个有效的罗马数字。 以下是使用正则表达式完成此操作时最简单方 法: xxxxxxxxxx //