自己算了一下1千万次循环JAVA和C的时间

JAVA与C性能对比
一篇关于JAVA和C语言性能对比的讨论,通过1千万次循环的简单实验引发了开发者们对于两种语言在不同场景下表现的思考。


问答

当前位置:
问答 »  技术问答 »  Java

云服务器免费,最高3个月,购买抽万元红包>>> »  

程序很简单,先把i=0,然后做1千万次while循环,执行i++

发现JAVA比C快了一倍多= =

以前就听说JAVA慢,哪位能给个实际的例子说明一下啊,JAVA一般在什么情况下慢?

---------------问题补充---------------

@gundamfj:看了各位的发言有一些启发,受教了(5年前)

gundamfj gundamfj
发帖于 5年前
25回/3644阅
标签:  Java  C/C++

按票数排序  显示最新答案  共有25个答案 (最后回答: 5年前 )

  • 1
  • 进来支持一下楼主。有疑问,动手做试验去验证,绝对是正确的路子。实践是检验真理的唯一标准嘛。

    不过,试验得出的结论,只能放在试验指向的条件中去解释。楼主这个试验,确实局限性比较大,很难对“JAVA慢”这个传言证真或证伪。只能说,在当时的试验条件下,C的速度比Java慢。

     

    其实所谓快慢的这种讨论,是要放在具体的问题上的。因为每个人工作中遇到的问题不同,对同一个问题的看法,也就不一样。

    我只能说,在我现在工作着的领域中,我不需要知道C是否比Java有任何的速度优势(或劣势),因为这两种语言中的任何一种的处理速度,都完全够用了。所以,对我现在来说,C和Java语言的处理速度,是完全一样的。

     

     

    评论(0)引用此答案举报 (2011-09-06 03:44)
    0
  • bastetwang

    您自己多写几个例子试试吧,别总用什么1千万啥的。您写个排序的例子吧。

     

    评论(0)引用此答案举报 (2011-09-05 21:37)
    0
  • zhaowenwei
    代码贴出来
    评论(0)引用此答案举报 (2011-09-05 21:45)
    0
  • Lunar_Lin
           实在不想费劲写例子反驳你了. 哎 我怎么这么无聊了.这样的帖子也留言...哎 哎 哎... 不好不好. 干正事了. 1:20  是C和旧java的比例,  c和C++是  1 : 1.1, 现在java优化很多了,但估计依旧快不了多少,可能1:11 ~ 1:18?? 我乱猜. 
    评论(0)引用此答案举报 (2011-09-05 22:42)
    0
  • WaiTing

    居然还有人这么认为。。真无聊。。

    别的不说,就说C编译通常有Debug与Release之分,Debug版的速度是非常慢的。。你用Debug版去和java比,公平吗?

    还涉及到优化的问题,你做这么简单的操作,难道不认为java直接优化成一句i+=10000000;吗?

    还有内存使用的问题,你看看java耗了多少,C又耗了多少?

     

    评论(0)引用此答案举报 (2011-09-05 23:18)
    0
  • 喜之郎
    你的这个例子只是在运算上,看不出来的。java一般涉及与操作系统直接打交道时慢。例如,java在多媒体处理方面。若你用java开发一个键盘钢琴,要求电脑键盘按下键时声音能立即发出,此时你就会感觉到有延迟,就相当于按下键时要等几百毫秒才听到,若你演奏者,你就无法接受。若你用C++写就明显感觉到反应灵敏。java在做网页方面当然不存在这么高的实时要求,你打开一个网页用200毫秒能接受,用两秒也可以接受。
    评论(0)引用此答案举报 (2011-09-05 23:23)
    0
  • 烈冰
    各有用处,没可比性。C再快,需要Java的时候你还得用Java
    评论(0)引用此答案举报 (2011-09-05 23:26)
    0
  • dargoner
    此贴比较无聊,还不是该用就得用的,管它谁快谁慢呢,再说你也管不了那么多的
    评论(0)引用此答案举报 (2011-09-06 08:54)
    0
  • Midnight
    我蛋碎了
    评论(0)引用此答案举报 (2011-09-06 08:57)
    0
  • ckh
    我蛋疼了
    评论(0)引用此答案举报 (2011-09-06 09:02)

问答

当前位置:
问答 »  技术问答 »  Java

云服务器免费,最高3个月,购买抽万元红包>>> »  

程序很简单,先把i=0,然后做1千万次while循环,执行i++

发现JAVA比C快了一倍多= =

以前就听说JAVA慢,哪位能给个实际的例子说明一下啊,JAVA一般在什么情况下慢?

---------------问题补充---------------

@gundamfj:看了各位的发言有一些启发,受教了(5年前)

gundamfj gundamfj
发帖于 5年前
25回/3644阅
标签:  Java  C/C++

按票数排序  显示最新答案  共有25个答案 (最后回答: 5年前 )

  • 1
  • 进来支持一下楼主。有疑问,动手做试验去验证,绝对是正确的路子。实践是检验真理的唯一标准嘛。

    不过,试验得出的结论,只能放在试验指向的条件中去解释。楼主这个试验,确实局限性比较大,很难对“JAVA慢”这个传言证真或证伪。只能说,在当时的试验条件下,C的速度比Java慢。

     

    其实所谓快慢的这种讨论,是要放在具体的问题上的。因为每个人工作中遇到的问题不同,对同一个问题的看法,也就不一样。

    我只能说,在我现在工作着的领域中,我不需要知道C是否比Java有任何的速度优势(或劣势),因为这两种语言中的任何一种的处理速度,都完全够用了。所以,对我现在来说,C和Java语言的处理速度,是完全一样的。

     

     

    评论(0)引用此答案举报 (2011-09-06 03:44)
    0
  • bastetwang

    您自己多写几个例子试试吧,别总用什么1千万啥的。您写个排序的例子吧。

     

    评论(0)引用此答案举报 (2011-09-05 21:37)
    0
  • zhaowenwei
    代码贴出来
    评论(0)引用此答案举报 (2011-09-05 21:45)
    0
  • Lunar_Lin
           实在不想费劲写例子反驳你了. 哎 我怎么这么无聊了.这样的帖子也留言...哎 哎 哎... 不好不好. 干正事了. 1:20  是C和旧java的比例,  c和C++是  1 : 1.1, 现在java优化很多了,但估计依旧快不了多少,可能1:11 ~ 1:18?? 我乱猜. 
    评论(0)引用此答案举报 (2011-09-05 22:42)
    0
  • WaiTing

    居然还有人这么认为。。真无聊。。

    别的不说,就说C编译通常有Debug与Release之分,Debug版的速度是非常慢的。。你用Debug版去和java比,公平吗?

    还涉及到优化的问题,你做这么简单的操作,难道不认为java直接优化成一句i+=10000000;吗?

    还有内存使用的问题,你看看java耗了多少,C又耗了多少?

     

    评论(0)引用此答案举报 (2011-09-05 23:18)
    0
  • 喜之郎
    你的这个例子只是在运算上,看不出来的。java一般涉及与操作系统直接打交道时慢。例如,java在多媒体处理方面。若你用java开发一个键盘钢琴,要求电脑键盘按下键时声音能立即发出,此时你就会感觉到有延迟,就相当于按下键时要等几百毫秒才听到,若你演奏者,你就无法接受。若你用C++写就明显感觉到反应灵敏。java在做网页方面当然不存在这么高的实时要求,你打开一个网页用200毫秒能接受,用两秒也可以接受。
    评论(0)引用此答案举报 (2011-09-05 23:23)
    0
  • 烈冰
    各有用处,没可比性。C再快,需要Java的时候你还得用Java
    评论(0)引用此答案举报 (2011-09-05 23:26)
    0
  • dargoner
    此贴比较无聊,还不是该用就得用的,管它谁快谁慢呢,再说你也管不了那么多的
    评论(0)引用此答案举报 (2011-09-06 08:54)
    0
  • Midnight
    我蛋碎了
    评论(0)引用此答案举报 (2011-09-06 08:57)
    0
  • ckh
    我蛋疼了
    评论(0)引用此答案举报 (2011-09-06 09:02)
### Java 中实现循环十次的代码 在 Java 编程语言中,`for` 循环是一种常用的控制流语句,用于重复执行一段代码指定次数。以下是通过 `for` 循环实现循环十次的具体示例: ```java public class LoopExample { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("当前循环次数: " + i); } } } ``` 在此代码片段中,`for` 循环由三部分组成:初始化变量 (`int i = 0`)、条件表达式 (`i < 10`) 更新表达式 (`i++`)。每次迭代都会打印当前循环计数器的值[^1]。 如果希望从 1 开始计数而不是从 0,则可以调整初始值输出逻辑: ```java public class LoopExample { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println("当前循环次数: " + i); } } } ``` 此版本将初始化设置为 `int i = 1` 并修改终止条件为 `i <= 10`,从而使得输出从 110 的整数值。 ### 嵌套循环的应用场景 除了简单的单层循环外,在某些情况下可能需要用到嵌套循环来解决更复杂的问题。例如,寻找满足特定数学性质的所有三位数可以通过三层嵌套循环完成,正如下面的例子所示[^2]: ```java class SpecialNumbersFinder { public static void main(String[] args) { for (int a = 1; a <= 9; a++) { for (int b = 0; b <= 9; b++) { for (int c = 0; c <= 9; c++) { if (a * a * a + b * b * b + c * c * c == (a * 100 + b * 10 + c)) { System.out.println("找到符合条件的数字:" + a + "" + b + "" + c); } } } } } } ``` 这段程序展示了如何利用多重循环遍历所有可能性并筛选出符合给定条件的结果。 ### 小球反弹模拟中的应用实例 对于图形界面编程或者游戏开发领域来说,掌握好基本的循环机制是非常重要的。比如在一个简单的小球反弹动画里,我们同样会用到持续性的循环去不断刷新屏幕上的位置变化情况直到达到预设结束状态为止[^3]。 #### 注意事项 当编写涉及大量数据处理或长时间运行的任务时,请务必考虑性能优化以及异常处理等问题,确保应用程序能够稳定高效地工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值