论坛首页 Java企业应用论坛

代码难道不是这么写的?

浏览 66462 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-07-28  
写里面写外面都无谓的,如果上下文有关系,写外面比较好,如果独立的,则写里面。
0 请登录后投票
   发表时间:2010-07-28  
评审变态

如果外面要用a,写外面;如果外面不用a,当然写里面。
0 请登录后投票
   发表时间:2010-07-28  
vaneng 写道
Cindy_Lee 写道
我有点迷惑,比如:
String a = {"a","b","c"};
for(int i=0;i<a.length;i++){
    System.out.println(a[i]);
}
以上这段代码是否要改成:
String a = {"a","b","c"};
int len = a.length;
for(int i=0;i<len;i++){
    System.out.println(a[i]);
}
这样改的意义何在?a.length只是一个属性而已,在内存里应该已经分配了指定的空间来装载,就算你每次调用a.length也只是掉用同一个内存区域而已,为何会出现重复计算?高手请指教

应该是按照第一种方式写。
原因也基本是这个原因。
如果自己写个类似于get**()的函数,也应该是调用函数,java编译器会自动以内联的方式调用。


亮了,我也想说length只是个属性而已,在数组确定长度的时候已经被保存下来了。不存在重复计算问题。
1 请登录后投票
   发表时间:2010-07-28  
thetcc 写道
vaneng 写道
Cindy_Lee 写道
我有点迷惑,比如:
String a = {"a","b","c"};
for(int i=0;i<a.length;i++){
    System.out.println(a[i]);
}
以上这段代码是否要改成:
String a = {"a","b","c"};
int len = a.length;
for(int i=0;i<len;i++){
    System.out.println(a[i]);
}
这样改的意义何在?a.length只是一个属性而已,在内存里应该已经分配了指定的空间来装载,就算你每次调用a.length也只是掉用同一个内存区域而已,为何会出现重复计算?高手请指教

应该是按照第一种方式写。
原因也基本是这个原因。
如果自己写个类似于get**()的函数,也应该是调用函数,java编译器会自动以内联的方式调用。


亮了,我也想说length只是个属性而已,在数组确定长度的时候已经被保存下来了。不存在重复计算问题。


不是什么计算,多寻址一次。
0 请登录后投票
   发表时间:2010-07-28  
支持LZ,不如意十有八九。
0 请登录后投票
   发表时间:2010-07-28  
不应该是
for_ecah(a in arr)
{
  System.out.println(a); 
}
0 请登录后投票
   发表时间:2010-07-28  
服务器上动则几个G的内存.浪费就浪费点吧

PS:评审一般看不懂应该重构的代码
0 请登录后投票
   发表时间:2010-07-28  
你本没错 

但在评审官面前  就算是对的也是错的了   可怜啦 
0 请登录后投票
   发表时间:2010-07-28  
评审是傻X+2B,鉴定完毕!
楼主是可怜的娃
0 请登录后投票
   发表时间:2010-07-28  
神之小丑 写道

for(int i = arr.len - 1;i >= 0 ;i--) {
  A a = arr[i];
  System.out.println(s);
  }

当初去面试一家手机游戏的公司,这个 就是其中的一个面试题的答案,

我也是这么写的,然后面试官给我说

手机编程 面临的最大问题就是内存很小的问题,所以能优化就优化,能少占内存就少占内存



面试官说的没错,手机内存不是PC,能重用的,尽量重用,不必要的new和对象的创建,会引来灾难性的后果。
0 请登录后投票
论坛首页 Java企业应用版

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