代码改变世界

Java 学习笔记 (四) Java 语句优化

2018-01-12 14:23  钱先生  阅读(237)  评论(0编辑  收藏  举报

这个问题是从headfirst java看到的。 

 

需求:

一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法.

下面两段程序的优缺点,哪个占用内存更少。

第一段:

1 Contact[]ca = new Contact[10];
2      while(x<10){
3         ca[x]=new Contact();
4         x=x+1;
5     }
6 //执行其余复杂工作

第二段:

1 Contact refc;
2 While(x<10){
3     refc = new Contact();
4     x=x+1;
5     }
6 //执行其余复杂的工作

 

书上的解答: 

第二段有个重大缺陷.其所占用的内存是比较少,但是除了最后一个Contact对象外其它的都没办法存取. 因为从头到尾只有一个引用变量.此变量最后只能引用到最新建立出的对象.