A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闪客sun 初级黑马   /  2016-11-23 17:28  /  827 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a = 1000;
for(int i =1;i<100000000;i++){
int b = a/2;
}
这段程序会运行约1400毫秒。

但如果把定义a的语句放在循环里。
for(int i =1;i<100000000;i++){
int a = 1000;
int b = a/2;
}
凭感觉来讲应该会运行更长时间才对,但结果确是运行了,130毫秒!

效率反而提高了一大截!求解~
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

3 个回复

倒序浏览
回复 使用道具 举报
是不是因为全局变量的生存时间比较长,所以比较慢呀。我也不知道
回复 使用道具 举报
呱码农 发表于 2016-11-23 18:44
是不是因为全局变量的生存时间比较长,所以比较慢呀。我也不知道

这个倒是真有可能,明天我问问老师。其实一开始我想比较右移运算符和除法的效率,结果意外发现了这个问题
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马