避免创建不必要的对象
概述
最好能重用对象,而不是每次需要的时候创建一个功能相同的对象
极端例子
1 | String s = new String("test"); |
这种用法的坏处就是,语句每次被执行的时候都会创建一个新的实例。因此我们可以用字符串常量代替使用:
1 | String s = "test"; |
对于在同一台虚拟机运行的代码,只要它们包含相同的字符串常量,该对象就会被复用。
重用
尽量使用静态工厂方法而不是构造器;
使用静态初始化器创建不会被修改的对象:
1 | class Person { |
autoBoxing
要优先使用基本类型而不是Boxed primitive type,考虑这样的例子:
1 | public static void main(String[] args) { |
由于sum被声明成Long而不是long,这意味着程序构造了2^31个Long实例。