日期:2014-05-20  浏览次数:20622 次

简单小问题~!
public   void   Methond(List   list1,List   list2){
  if(list1.size> list2.size)
    {
      .........
    }
}

public   void   Methond(List   list1,List   list2){
    int   size1=list1.size;
    int   size2=list2.size;  
  if(size1> size2)
    {
      .........
    }
这两着有什么区别~?
}

------解决方案--------------------
唯一的区别就是新定义的变量,增加了开销
其它的一样
------解决方案--------------------
区别是有区别的,不过在if()语句这里影响不大,因为list1.size这样用的话每次都要对list进行遍历才能得到它的size,如果反复使用list的size属性的话,最好还是先把它取出来放在int变量里面,譬如有这样的一条语句for(;list.size;) {} 最好还是使用后者的方法
------解决方案--------------------
区别就是……
内存里多开了两块int的空间
------解决方案--------------------
多浪费了4个字节的内存.前者在比较以后就释放了,而后者要函数执行完后才释放.我觉得,讨论这个问题,不实在.呵呵.
------解决方案--------------------
第二效率更高些