第四条:避免创建重复的对象作为一个极端的反面例子,考虑下面的语名:String s = new String("sample"); //Don't do this! 该语句每被执行一次都会创建一个新的String实例(以前有点不太理解一句话:String对象是一个不可变字符串,而StringBuffer对象是一个可变字符串。这个不可变和可变让我不知如何想象,当我用一个String对象作为引用传给一个方法,再在方法体中改变它的值,但是在调用该方法后,外边的值依然没有改变,这不符合JAVA中的引用规则,才想到String对象的非凡性:不可变字符串)在开发工作中,经常会在方法体中实例化对象,在这个方法有可能被频繁调用并且实例化的对象是相同的实例时,应该考虑把这个实例化的对象放到方法体外来定义和实例化。从而避免创建重复的对象。另一方面,由于小对象的构造函数只做很小量的工作,所以,小对象的创建和回收动作是非常廉价的,非凡是在现代的JVM实现上更是如此。通过创建附加的对象以使得一个程序更加清楚、简洁、功能强大,这往往是一件好事。