锁定老帖子 主题:关于性能优化
精华帖 (2) :: 良好帖 (10) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-18
新手还是有可以考虑的地方的吧:
比如Integer i = new Integer(20) ; 和Integer j = Integer.valueOf(20); 虽然简单的这两行不见得会有多少差别,但是这样的代码多了,或者是在循环里面, 是不是........... |
|
返回顶楼 | |
发表时间:2010-11-18
最后修改:2010-11-18
zhangyou1010 写道 新手还是有可以考虑的地方的吧:
比如Integer i = new Integer(20) ; 和Integer j = Integer.valueOf(20); 虽然简单的这两行不见得会有多少差别,但是这样的代码多了,或者是在循环里面, 是不是........... 哈哈,lz想要的人出现了,其实lz想批评的正是你这种。 实际项目中真正由这种代码引起系统慢的情况是非常少见的。 如果你花心思在这种级别的代码上试图优化系统的话,基本上就完蛋了。 |
|
返回顶楼 | |
发表时间:2010-11-18
有人批评我函数体写的太小,会影响性能,有时候听了我都不知道该跟他讲什么。
|
|
返回顶楼 | |
发表时间:2010-11-18
dsjt 写道 ouchxp 写道 JDK自己已经有优化了. 不合理的优化反而会降低效率 比如字符串常量拼接 String str ="aaa" + "bbb" +"ccc" + "ddd"; StringBuilder sb = new StringBuilder(); sb.append("aaa"); sb.append("bbb"); sb.append("ccc"); sb.append("ddd"); String str = sb.toString(); 哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反. 反编译看一下就知道为什么了. 我们项目经理不让用第一种 怀疑是你理解错了。String常量才会出现这种情况,变量还是推荐用第二种。 |
|
返回顶楼 | |
发表时间:2010-11-19
http4j 写道 dsjt 写道 ouchxp 写道 JDK自己已经有优化了. 不合理的优化反而会降低效率 比如字符串常量拼接 String str ="aaa" + "bbb" +"ccc" + "ddd"; StringBuilder sb = new StringBuilder(); sb.append("aaa"); sb.append("bbb"); sb.append("ccc"); sb.append("ddd"); String str = sb.toString(); 哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反. 反编译看一下就知道为什么了. 我们项目经理不让用第一种 怀疑是你理解错了。String常量才会出现这种情况,变量还是推荐用第二种。 呢,不是, 我写sql,最初一个字符串,被说可读性差,就改成连+,被要求用StringBuffer |
|
返回顶楼 | |
发表时间:2010-11-19
最后修改:2010-11-19
http4j 写道 dsjt 写道 ouchxp 写道 JDK自己已经有优化了. 不合理的优化反而会降低效率 比如字符串常量拼接 String str ="aaa" + "bbb" +"ccc" + "ddd"; StringBuilder sb = new StringBuilder(); sb.append("aaa"); sb.append("bbb"); sb.append("ccc"); sb.append("ddd"); String str = sb.toString(); 哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反. 反编译看一下就知道为什么了. 我们项目经理不让用第一种 怀疑是你理解错了。String常量才会出现这种情况,变量还是推荐用第二种。 已经说明了是常量拼接的情况,怀疑你是没看到. 如LS所述SQL通常是常量拼接 |
|
返回顶楼 | |
发表时间:2010-11-19
ouchxp 写道 http4j 写道 dsjt 写道 ouchxp 写道 JDK自己已经有优化了. 不合理的优化反而会降低效率 比如字符串常量拼接 String str ="aaa" + "bbb" +"ccc" + "ddd"; StringBuilder sb = new StringBuilder(); sb.append("aaa"); sb.append("bbb"); sb.append("ccc"); sb.append("ddd"); String str = sb.toString(); 哪种效率高? 答案是第一种. 对于新手来说想优化很容易适得其反. 反编译看一下就知道为什么了. 我们项目经理不让用第一种 怀疑是你理解错了。String常量才会出现这种情况,变量还是推荐用第二种。 已经说明了是常量拼接的情况,怀疑你是没看到. 如LS所述SQL通常是常量拼接 汗,还是你理解错了,我说的不是你啊。是说那个人呢,什么项目经理不让用第一种那个,谁说你了。 我说他理解错了。 |
|
返回顶楼 | |
发表时间:2010-11-19
zhangyou1010 写道 新手还是有可以考虑的地方的吧:
比如Integer i = new Integer(20) ; 和Integer j = Integer.valueOf(20); 虽然简单的这两行不见得会有多少差别,但是这样的代码多了,或者是在循环里面, 是不是........... Integer i = 20 ; |
|
返回顶楼 | |
发表时间:2010-11-19
最后修改:2010-11-19
JAVA里面确实有很多不方便的地方,如:
1.基本类型的包装类与基本类型对null的差别处理 2.map,list,set甚至正则,xml等数据没有原生支持的语法糖。 3.集合类型不支持泛型的协变、逆变处理等。 3.闭包。 这可能是我接触的比较多的吧。 但是相对于其它语言要是使用var a = "123";这类的语法来,说实在的我还是喜欢 String a = "123"。 虽然看着臃肿了点,但是能一目了然,至少可以直接地知道a是个什么东西,有什么功能。。 |
|
返回顶楼 | |
发表时间:2010-11-19
最后修改:2010-11-19
http4j 写道 汗,还是你理解错了,我说的不是你啊。是说那个人呢,什么项目经理不让用第一种那个,谁说你了。 我说他理解错了。 了解了 , 通常项目经理不会区分常量拼接和变量拼接的. 因为项目经理也未必知道这其中有什么不同. |
|
返回顶楼 | |