关键点一
在编码过程中,最好是能重用已经建立的对象,而不是每次用到都要新建对象。在这里重用是指对象是不可变的,那就可以直接反复调用。
举一个错误的例子:
String s = new String("word");
系统在每次调用该语句的时候都会创建一个对象,而“word”本身就是一个对象实例,没必要再以这种形式定义了。其实这是画蛇添足的表现。只需要如下形式便可以:
String s = "word";
程序凡是运行在同一台虚拟机中,遇到相同的字符集都会调用它,并不会新建对象。
关键点二
在此之前我们先来巩固一下装箱和拆箱的概念。
装箱:数据基本类型转换成对象类型的操作;
拆箱:是装箱的逆过程。
自动装箱和自动拆箱就是上述过程的隐式操作。
举两个简单的例子:
Integer i = 10;//自动装箱
int t = i; //拆箱,实际上执行了 int t = i.intValue();
明白两个基本的概念后,我们再来看下面。
对于同时提供了静态工厂方法和构造器的不可变类,通常是使用静态工厂方法而不是构造器,这样便可避免不必要的对象建立。
在JDK1.5中引入了自动装箱的概念,这一机制可以创建多余的对象,所以要避免运用装箱类型。
关键点三
千万不要错误地认为,要尽量少得创建对象。JVM可以方便地回收一些小对象,它们并不影响系统的性能,反而会改善程序的简洁性、清晰性,让别人更容易理解。对于像数据库连接池这样珍贵的资源,我们要小心地创建新的对象。
网友评论