比如创建一个字符串的时候
String s = new String("123");复制代码
这是就创建了两个对象 我们可以
String s = "123";复制代码
对于同时提供了静态工厂方法和构造器的不可变类,通常可以使用静态工厂方法而不是构造器,以避免创建不必要的的对象。 例如静态工厂方法Boolean.valueOf(String)几乎总是优先于构造器Boolean(String)。构造器在每次被调用的时候都会创建一个新的对象,而静态工厂方法则从来不要求这样做,实际上也不会这样做。
自动装箱示例:
Long sum = 0;for(long i=0;i
变量sum被声明成Long而不是long,意味着程序构造了大约2^31个多余的Long实例。 结论:要优先使用基本类型而不是装箱基本类型,要当心无意识的自动装箱。
所以要尽可能的避免创建对象。