论坛首页 Java企业应用论坛

循环的优化

浏览 13591 次
锁定老帖子 主题:循环的优化
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-31  
jieping310 写道


我只要先做个判断就可以啊
var != null && var.equals("123")这样跟 "123".equals(var);性能上有很大区别么?


两者的性能差别不是太大,

你的判断完全可以省略,

变成简洁、高效、易读的 "123".equals(var)【相比较你的判断】;

这种问题自己在平时可以注意一下,稍微思考,应该不是问题


0 请登录后投票
   发表时间:2008-10-31  
还有一个小小的好处是,此时的var 可以是任何对象

即使是null

呵呵
0 请登录后投票
   发表时间:2008-11-01  
传递的参数是null,是否意味着有错误呢
呵呵 让我想起了 鸵鸟算法
0 请登录后投票
   发表时间:2008-11-04  
即使是3那样的代码,java编译器应该做了优化了吧,如果这样的代码都不能优化,那编译器也够失败的了
0 请登录后投票
   发表时间:2008-11-04  
freish 写道

即使是3那样的代码,java编译器应该做了优化了吧,如果这样的代码都不能优化,那编译器也够失败的了



0 请登录后投票
   发表时间:2008-11-04  
try{  
for(int i=180000;i>=0;i--){  
//快  
 
}  
}catch{  



按楼主这样做有个很大的问题。。。。如果i=100的时候抛了异常,100以后的就不能继续循环了。。。

0 请登录后投票
   发表时间:2008-11-04  
taupo 写道
try{  
for(int i=180000;i>=0;i--){  
//快  
 
}  
}catch{  



按楼主这样做有个很大的问题。。。。如果i=100的时候抛了异常,100以后的就不能继续循环了。。。



那是当然的,楼主所说的是,当有异常时,循环就中断的话,最好将 try{}catch() 放在循环的外面。但,如果出现异常时,仍不能中断循环时,则 try..catch 就不能放在外面了。。。
0 请登录后投票
   发表时间:2008-11-04  
拼接字符串的就不用说了。

第一条,我不信编译器或者JVM没有帮你优化
第二条,两个代码的行为不一样啊
0 请登录后投票
   发表时间:2008-11-04  
受教了,不过个人感觉,除了研究所以外,做的东西都是给客户或客人的.
0 请登录后投票
   发表时间:2008-11-05  
zgd 写道

拼接字符串的就不用说了。第一条,我不信编译器或者JVM没有帮你优化第二条,两个代码的行为不一样啊



你不信:是你的主观愿望,要真正测试才可以,第一条我已经说过,意义不大,

对于参加异常讨论的朋友,我有句话,非常严重的告诉你

【编译器编译的时候要对语句进行语法分析的】,所以你在编译我的事例的时候,也要分析我的语法,我前面有个词语【尽量】,不知道你们分析到了没有,如果你们没有分析到,所以,你们会报异常的,由此,我来写这个帖子来捕获你们的异常来了,O(∩_∩)O哈哈~,开个玩笑,do,do do 
0 请登录后投票
论坛首页 Java企业应用版

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