看到这个标题就想起我以前一个同事,当时他在敲代码,我正好在他身边站的,他写一个函数,定义一个整数的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的实例显然就的多余了,因为更不用不到这个实例。所以我
习惯哪用那创建,采用就近原则。