JAVA低层挑战,有兴趣的高手来看看!

FS-Leehom 2010-11-12 03:57:46
一个很简单的问题,但是却又不简单。之所以叫简单的问题是因为内容少,答案不简单是很多人回答不了。废话少说,上题:

双重for循环效率问题,外面一千万次,里面一百次……


for(int i=0;i<10000000;i++)
for(int j=0;j<100;j++);



for(int i=0;i<100;i++)
for(int j=0;j<10000000;j++);


大家看后说说哪个效率要高些还是说两个都是一样。我本人第一感觉是第一个要快些,后来一想是不是一样的呢?因为计算次

数都相等,后来一实验,结果却出人意料。

网上有人说下面的快,原因是因为跳的次数少,但是结果却相反,你怎么看呢?
...全文
600 点赞 收藏 36
写回复
36 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wenin819 2010-12-19
学习了。
回复
WorkHardbjk 2010-12-19
我觉得JVM有些不确定性,所以难免误差。
那我想问,java for循环和C for 循环高层原理一样,用C试一试,看看到底是不是两种双层for真的不同。
回复
周凯_csdn 2010-12-19
这个似乎意义真不大,要看具体的环境,


CUP的调度,,,这都很难确定的
回复
IceArmour 2010-12-19
循环内大外小效率要高,这方面本站已经有很多文章了
回复
jimiStephen 2010-12-19
有意思
回复
acj14591 2010-12-08
。。java还有能量守恒定律????
回复
chenzhp 2010-12-07
能量守恒。
回复
岳丰源 2010-12-07
运行了多次都是第二种效率高,用时少
回复
lxningasjj 2010-12-07
int mark = 0;
long begin = System.currentTimeMillis();
for(int i=0;i<10000000;i++)
for(int j=0;j<100;j++){
mark++;
}
long use = System.currentTimeMillis()- begin;
System.out.println(use);
mark = 0;

long begin1 = System.currentTimeMillis();
for(int i=0;i<100;i++)
for(int j=0;j<10000000;j++){
mark++;
}
long use1 = System.currentTimeMillis()- begin1;
System.out.println(use1);


1453
1329

1500
1343

1468
1282
jdk1.6 三次的结果
回复
lxy15329 2010-12-07
这个问题确实够深奥的,小生知识尚浅,还不足以论道啊!继续学习
回复
gamefx 2010-12-07
这个要结合机器性能和软件版本不同而论吧
回复
i李小武 2010-12-07
学习了
回复
micarol 2010-11-13
都说了结果是谁快。原因呢?楼主那解释貌似可以接受
回复
测试代码有问题,由于 Java HotSpot 的关系,写在 main 方法前面的代码执行会耗时一些,后面的代码会快一些,你把两种循环换个个,就会发现了。
回复
降龙 2010-11-12
学习了。。。。
回复
龙四 2010-11-12
纯属扯淡,在c语言中可能确实第二种是一种优化,但在java中,是不能拿c语言的东西来套的,jvm本身只是一纸规范,若自己实现一个jdk,完全可以优化第一种方式,让它的效率比第二种高,IBM J9 1.5的实现第一种方式就比第二种方式效率稍高点


[Quote=引用 16 楼 leehomwong 的回复:]

为神马我记得以前有人说第二种是第一种的优化啊
[/Quote]
回复
zhuwen9 2010-11-12
jdk 1.5.0.06
方法一耗时:2965354815
方法二耗时:2895023809
回复
24K純帥 2010-11-12
为神马我记得以前有人说第二种是第一种的优化啊
回复
meteor1015 2010-11-12
这个好玩 ,不同的JDK实现 结果貌视 结果不一样
回复
FS-Leehom 2010-11-12
错了错了,呵呵 ……

都是需要创建的值的,只是顺序不一样而已~~~

继续学习底层东西,有兴趣,有精力大家继续,哈哈……
回复
加载更多回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2010-11-12 03:57
社区公告
暂无公告