概述
避免创建不必要的对象,这一条告诉我们,要尽可能的重用对象。书中举了几个例子来讲解一些无意识的创建不必要的对象的情况。
1. String类的使用
String str = new String("abc");
上面这条代码执行过后,会生成两个对象,参数”abc”本身就是一个String对象,new String()又会产生新的String对象。
正确的做法如下:
String str = "abc";
无论这条语句执行多少次,对象只会有一个。
2. 自动装箱机制
long sum = 0L;
long start = System.currentTimeMillis();
for (int i = 0; i< Integer.MAX_VALUE; i++) {
sum += i;
}
long end = System.currentTimeMillis();
System.out.println(sum + " 用时: " + (end - start) + "ms");
上面这段代码在我电脑的执行时间大概是600ms。
Long sum = 0L;
long start = System.currentTimeMillis();
for (int i = 0; i< Integer.MAX_VALUE; i++) {
sum += i;
}
long end = System.currentTimeMillis();
System.out.println(sum + " 用时: " + (end - start) + "ms");
上面这段代码在我电脑的执行时间大概是15S。
相差这么多的原因只是因为下面的代码中使用了Long而不是long,这意味着每次相加完赋给sum一个新值时,都会生成一个新的Long对象,使用Long比使用long多生成了2^31个对象。
3. 方法内重复创建常量对象
情况就是一个方法每次被调用都会生成一些新的但值永远一模一样的对象。解决方法就是把这些常量对象作为类变量,然后在static语句内初始化,方法被调用时,就不需要每次都生成新对象了。
最后
以上就是害羞季节为你收集整理的避免创建不必要的对象(Effective Java第5条)的全部内容,希望文章能够帮你解决避免创建不必要的对象(Effective Java第5条)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复