5:避免创建不必要的对象

1. 总览

一般来说,最好能重用对象,而不是在每次需要的时候就创建一个相同功能的新对象。

比如,我们不应该这样写:String s = new String("string");,而应该这样写:String s = "string";

2.几个好的思想

  • 1.静态工厂方法总是优于构造器。

    对于同时提供了静态工厂方法和构造器的不可变类,通常可以使用静态工厂方法而不是构造器,以避免创建不必要的对象。例如,静态工厂方法Boolean.valueOf(String)几乎总是优先于构造器Boolean(String)。

  • 2.除了重用不可变的对象之外,也可以重用那些已知的不会被修改的可变对象。

  • 3.要优先使用基本数据类型,而不是他们的包装类,要当心无意识的自动装箱。

  • 4.通过创建附加对象,提升程序的清晰性、简洁性和功能性,这通常是件好事。

    小对象的创建和回收动作是十分廉价的,特别是在现代jvm上更是如此。

  • 5.通过维护自己的对象池来避免创建对象并不是一种好的做法,除非池中的对象是非常重量级的。

  • 6.在提倡使用保护性拷贝的时候,因重用对象而付出的代价要远远大于因重复创建对象而付出的代价。

results matching ""

    No results matching ""