锁定老帖子 主题:代码难道不是这么写的?
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-28
写里面写外面都无谓的,如果上下文有关系,写外面比较好,如果独立的,则写里面。
|
|
返回顶楼 | |
发表时间:2010-07-28
评审变态
如果外面要用a,写外面;如果外面不用a,当然写里面。 |
|
返回顶楼 | |
发表时间: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只是个属性而已,在数组确定长度的时候已经被保存下来了。不存在重复计算问题。 |
|
返回顶楼 | |
发表时间: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只是个属性而已,在数组确定长度的时候已经被保存下来了。不存在重复计算问题。 不是什么计算,多寻址一次。 |
|
返回顶楼 | |
发表时间:2010-07-28
支持LZ,不如意十有八九。
|
|
返回顶楼 | |
发表时间:2010-07-28
不应该是
for_ecah(a in arr) { System.out.println(a); } 么 |
|
返回顶楼 | |
发表时间:2010-07-28
服务器上动则几个G的内存.浪费就浪费点吧
PS:评审一般看不懂应该重构的代码 |
|
返回顶楼 | |
发表时间:2010-07-28
你本没错
但在评审官面前 就算是对的也是错的了 可怜啦 |
|
返回顶楼 | |
发表时间:2010-07-28
评审是傻X+2B,鉴定完毕!
楼主是可怜的娃 |
|
返回顶楼 | |
发表时间:2010-07-28
神之小丑 写道 for(int i = arr.len - 1;i >= 0 ;i--) { A a = arr[i]; System.out.println(s); } 当初去面试一家手机游戏的公司,这个 就是其中的一个面试题的答案, 我也是这么写的,然后面试官给我说 手机编程 面临的最大问题就是内存很小的问题,所以能优化就优化,能少占内存就少占内存 面试官说的没错,手机内存不是PC,能重用的,尽量重用,不必要的new和对象的创建,会引来灾难性的后果。 |
|
返回顶楼 | |