论坛首页 Java企业应用论坛

讨论几个常用的模式

浏览 19153 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-04-08  
这也是精华,无语。。。。。。。。
0 请登录后投票
   发表时间:2011-04-25   最后修改:2011-04-25
引用

这是一道用友的面试题。题目是:请优化下面代码,并给出原因:
Java代码 
for(int i = 0;i<10000;i++) { 
     for(int j = 0;j<1000;j++) { 
          for(int k = 0;k<100;k++) { 
             function(i,j,k);\ 
          } 
     } 
   } 


      这道题优化起来也许很容易,但要说出其中的原理我觉得比较难,希望能看到更多的是原理方面的讨论,越深刻越好!

没看明白怎么优化, 有tx看明白了吗?


这个本身感觉并没有多好的优化方法,不过这样下来要调用10000*1000*100=10亿次function,栈调用的时间太长了,感觉可以在function方法中这么写:
void function(int iCount, int jCount, int kCount){
   for(int i = 0;i<10000;i++) {  
     for(int j = 0;j<1000;j++) {  
          for(int k = 0;k<100;k++) {  
             //原来function中的函数内容。
          }  
     }  
   }
}

然后
int iCount = 1000;
jCount = 1000;
kCount = 100;
function(iCount,jCount,kCount);
-----------------------------------------------
应该还有其他的优化方法
0 请登录后投票
   发表时间:2011-05-25  
这个总结的还是不错的!不过确实有点空洞!上下文那个我在项目中还确实用了一次!感觉很容易错乱!如果没有很好的命名的话!就是个灾难!我都想改造掉了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics