展开

关键词

for(;;) 和 while(true) 的区别

LineNumberTable: line 3: 0 StackMapTable: number_of_entries = 1 frame_type = 0 /* same */ while (true){}的编译结果 flags: ACC_PUBLIC, ACC_STATIC Code: stack=0, locals=1, args_size=1 0 StackMapTable: number_of_entries = 1 frame_type = 0 /* same */ 看起来没有什么不同,实际上也是一样.没有什么不同 但是 whiletrue)在C和C ++(C#?)

19620

for (;;) 与 while (true),哪个更快?

. | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (…)括号里的while语句,最常见的是这样: while (1) { /* ... */ 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

24510
  • 广告
    关闭

    腾讯云618采购季来袭!

    一键领取预热专享618元代金券,2核2G云服务器爆品秒杀低至18元!云产品首单低0.8折起,企业用户购买域名1元起…

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    for (;;) 与 while (true),哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (…)括号里的while语句,最常见的是这样: while (1) { /* ... */ 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    12210

    Rust 往事 | Loop 和 While True 之争

    该 Issues 建议: 移除 loop 关键字,换成 while true。注意,这里是将 while true 整体来替代 loop。 因为其他很多语言都是用的 while true ,这里就不必要加 loop 了。 while true 可以简化为 while { ... } . 这个建议看上去,好像是挺有道理。 至此,我的问题也迎刃而解: 虽然在编译期识别 true 字面量易如反掌,但整体来看,while true 其实属于一种特殊的情况,更为普遍的是 while (constexpr == true) 的情况 为了保持语言的一致性,就不能给 while true 开小灶。语言缺乏一致性,对于开发者来说,其实是一种灾难。 妥协 即便如此,while true 依然是个问题。 原因有二: while true 在语义上确实会让人理解为无限循环,没毛病。 有些人确实喜欢用 while true,你不能不让他用。

    45630

    while (true) 和 for (;;) 到底哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样: while (1) { /* .. 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    16630

    while (true) 和 for (;;) 到底哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样: while (1) { /* ... 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    9810

    Java 里的 for (;;) 与 while (true),哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (…)括号里的while语句,最常见的是这样: while (1) { /* ... 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    20020

    Java 里的 for (;;) 与 while (true),哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true". | wc -l 323 并没有差多少 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样: while(1) { /* ... */ } 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 ---- 至于Java里while (true)与for (;;)哪个“效率更高” 这种规范没有规定的问题,答案都是“看实现”,毕竟实现只要保证语义符合规范就行了,而效率并不在规范管得着的范畴内。 首先看javac对下面俩语句的编译结果 以Oracle/Sun JDK8u / OpenJDK8u的实现来看: publicvoid foo() { int i = 0; while(true) { i

    25520

    猜一猜, for (;;) 与 while (true) 哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样: while (1) { /* ... */ 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    29810

    Java 里的 for (;;) 与 while (true),哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (…)括号里的while语句,最常见的是这样: while (1) { /* ... 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    21010

    Python while true实现爬虫定时任务

    首先最容易的是while true死循环挂起,上代码 import osimport timeimport sysfrom datetime import datetime, timedelta def delta.total_seconds() % Second_update_time print("距离第一次执行需要睡眠%d秒" % first_plan_Time) return first_plan_Time # while Ture代码块,挂起程序,睡眠时间结束后调用函数名进行执行 while True: s1 = One_Plan() time.sleep(s1) # 下面这里是自己定义的函数,想跑代码的可以换成

    26320

    知乎高赞:while (true) 和 for (;;) 到底哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (...)括号里的while语句,最常见的是这样: while (1) { /* ... 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    21050

    面试遇到Java 里的 for (;;) 与 while (true),哪个更快?

    . | wc -l 369 mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr "while \\(true" . | wc -l 在C语言里,如果不include某些头文件或者自己声明的话,是没有内建的Bool / bool类型,也没有TRUE / FALSE / true / false这些Bool / bool类型值的字面量的 所以,假定没有include那些头文件或者自己define出上述字面量,一个不把循环条件写在while (…)括号里的while语句,最常见的是这样: while (1) { /* ... */ 顺带一提,在Java里我是倾向于写while (true)的,不过我也不介意别人在他们自己的项目里写for (;;)。 至于Java里的for (;;)与while (true),哪个更快? (true) { i++; } } /* public void foo(); Code: stack=1, locals=2, args_size=1

    25720

    为啥看并发源码中,经常使用for(;;)而不是使用while(true)?

    在看并发源码的时候,很多时候源码中都使用for(;;)而不是使用while(true),这两个有什么区别吗? 首先“死循环”有两种写法:for(;;)和while(true),在java里面,最简单有效的办法就是打印字节码看一下 ? 字节码一模一样,能有啥区别? while(1)在编译后: for(;;)在编译后: mp foo+23h 这里的区别就非常明显了,for(;;)在c语言中指令较少,也能够节省内存,没有判断跳转,是比while(1)更好的无限循环。

    21420

    while(1) vs while(2)

    while(1) { // Some code } while(2) { //Some code } 这是我的一个面试官提出的,我给出的答案是:一样快! 但面试官说, while(1) 的更快! 真的是这样么? 回答 对于现代编译器来说,肯定是一样快的! 但对于程序员来说可能不是。从写法上来看,while(1) 更符合大众的理解。 大家都知道你写的 while(1) 想表达地是无限循环的意思,但如果突然出现个 while(2),稍微细心的人都会稍作停留并思考作者为什么这么写。

    8220

    每周四更面试题:TrueTrue=?

    布尔值 布尔数据类型只有 True or False 两个值,它作为逻辑判断的基准被应用在程序各处的布尔上下文中(e.g. if、while、for 等逻辑控制语句)。 但需要注意的是,即便 True 和 1 的 Value 是相同的,但两者却不可能是同一个对象,因为两者的 Type 不同。(ps. 通过 type 和 id 函数可以看出,在上述代码中其实存在着两个不同的 True 对象。一个 Python 内置的布尔类型对象 True,一个是新建的整数类型对象 “True”。 实际上当我们对 True 使用增强型赋值操作符时,并没有直接修改位于 Builtin 内置作用域中 True 对象,而是在 Local 本地作用域中创建了一个新的变量对象 “True”。 当我们在同一个本地作用域中 Delete 掉 “True” 对象的引用之后,内置作用域中的 True 又会重新出现。

    29570

    深探 while 与 do while

    我们很多时候刷题会用到循环,对while和do while分辨得可能不是很清楚,那么今日我们就来一探究竟。 循环中的关键字:while与do while 简单来说,while与do while最大的区别便是while会先判断再执行语句,而do while便是先do(执行)再判断,也就是说do while不管条件是否成立 while语句:入口条件循环 1.while循环的通用形式如下: while(){ 循环体; } 2.终止while循环: while循环有一点非常重要:在构建while循环时,必须要让测试表达式的值有变化 3.while:入口条件循环(for循环语句也是) while循环是使用入口条件的有条件循环。什么是“有条件”呢,它其实指的是语句部分的执行取决于测试表达式描述的条件。 1.do while循环的通用形式如下: do{ 循环体 }while();注:do while语句以分号结尾 那么最后我们该如何选择使用哪一种语句呢?

    20520

    @Modifying(clearAutomatically = true)

    通过网络搜索发现有人遇到过这个问题:就是在Repository的方法上的 @Modifying ,里面带上 clearAutomatically 的参数为true就可以解决,看官方的说明的意思是执行后会自动清除持久化上下文

    8410

    4.1 while和do...while循环

    一、while循环 一般形式:while(表达式)语句,其中语句就是循环体 注意:只要循环条件表达式为真(即给定的条件成立),就执行循环体语句 例子: ? 结果: ? 二、do...while循环 一般形式: do 语句 while(表达式) 注意:先执行循环体,然后再检查条件是否成立,若成立,再执行循环体 例子: ? 结果: ?

    1903329

    C++里大写TRUE和小写true区别

    C++里有区别 true是bool型的; TRUE是int型的,VC里这个是ms自己定义的; C++规定不允许只通过返回类型不同区别两个函数 ===================== ========

    25920

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券