第5条:避免创建不必要的对象_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 第5条:避免创建不必要的对象

第5条:避免创建不必要的对象

 2014/7/25 23:21:45  黑龙0110  程序员俱乐部  我要评论(0)
  • 摘要:看到这个标题就想起我以前一个同事,当时他在敲代码,我正好在他身边站的,他写一个函数,定义一个整数的count用来计数,Integercount=0;我就和他说不需要用Integer类型,int就可以的。他回答我说都一样。怎么能一样呢?要是一样设计者为啥要弄出两个来呢?两个肯定是有区别的嘛。(凡事多问为什么)。下面一个类似示例:publicstaticvoidmain(Stringargs[]){Longsum=0L;for(longi=0;i<Integer.MAX_VALUE;I++)
  • 标签:创建
看到这个标题就想起我以前一个同事,当时他在敲代码,我正好在他身边站的,他写一个函数,定义一个整数的count用来计数,
  Integer count=0;
我就和他说不需要用Integer类型,int就可以的。他回答我说都一样。怎么能一样呢?要是一样设计者为啥要弄出两个来呢?两个肯定是有区别的嘛。(凡事多问为什么)。
下面一个类似示例:
class="java">
public static void main(String args[]){
    Long sum=0L;
    for(long i=0;i<Integer.MAX_VALUE; I++){

sum +=i;
}
System.out.println(sum);
}


这段代码是想计算所有int正值的总和,因此必须用long算法,但是把sum声明成Long而不是long,那程序就构造了大约2的31次方个多余的Long实例。
还有我们经常写代码时会犯类似错误,尤其是刚开始做做开发的:

public class PersonService{
    
    private PersionDao dao=new PersionDao();
    public void update(){
//……
      dao.update();
}

public void del(){
//……
      dao.del();
}

//但是这个类里面来由很多方法,它们就没有用到PersionDao这个实例 

}



在每次调用PersonService时都要创建PersionDao实例,如果调用update和del以外的方法时,那创建PersionDao的实例显然就的多余了,因为更不用不到这个实例。所以我习惯哪用那创建,采用就近原则。
发表评论
用户名: 匿名