前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >while()循环

while()循环

作者头像
在水一方
发布于 2022-06-14 07:53:10
发布于 2022-06-14 07:53:10
1.5K00
代码可运行
举报
文章被收录于专栏:在水一方在水一方
运行总次数:0
代码可运行

回顾一下java基础的while(true)循环,有时候实际项目中也会看到在用。本小节来梳理一下

理解

只要while括号汇总返回的true那么大括号中的内容点就会一直执行下去,因此while(true)表示无限循环

使用场景

一、比如需要对上传的图片做一定的处理,图片不知道什么时候上传,一次上传的图片数量也不确定,但一旦上传就需要及时处理,这个时候采用定时任务框架APScheduler就不一定合适了,此时采用while True的方式,问题就解决了

二、树结构需要获取某个节点下面所有的子节点,由于节点下面可能会有n多个子节点,此时就需要通过while(true)去无限循环判断,当查到某个子节点的值为空时表示到了最后一级节点此时就可以跳出循环了

while(true){}为无限循环

说明:一般情况下,在无限循环内部要有程序终止的语句,使用break实现。若没有,那就是死循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  while (true){
           Set<String> child=getAllSon(currentSet);
           if(child.size()==0){
               break;
           }

       }

二、while(it.hasNext())

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 final BlockingQueue<Runnable> q = workQueue;
            Iterator<Runnable> it = q.iterator();
            while (it.hasNext()) {
                 Runnable r = it.next();
             }

一般在迭代查询一行行数据的是可以用

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
兄dei,你被代码死循环坑了吗?
代码死循环这个话题,个人觉得还是挺有趣的。因为只要是开发人员,必定会踩过这个坑。如果真的没踩过,只能说明你代码写少了,或者是真正的大神。
用户7656790
2021/04/28
2.2K0
兄dei,你被代码死循环坑了吗?
题目不让我做什么,我就偏要去做什么🤔
这篇文章本来想试下付费图文的功能,但是公众平台出 bug 了,大概率会出现无法创建订单的问题,我自己都看不了……那就算了吧,对于成功付费的读者,相当于你赞赏了本文,后台都有记录的,谢谢各位的支持~
labuladong
2021/09/23
7260
多线程编程:阻塞、并发队列的使用总结
最近,一直在跟设计的任务调度模块周旋,目前终于完成了第一阶段的调试。今天,我想借助博客园平台把最近在设计过程中,使用队列和集合的一些基础知识给大家总结一下,方便大家以后直接copy。本文都是一些没有技术含量的东西,只是做个总结,牛哥还请绕路。 老习惯,还是先跟各位纸上谈会儿兵,首先说说队列,他主要分为并发队列和阻塞队列,在多线程业务场景中使用最为普遍,我就主要结合我所做过的业务谈谈我对它们的看法,关于它们的API和官方解释就不提了。 并发队列 并发队列:最常见的业务场景就是多个线程共享同一个队列中的所有资源
赵小忠
2018/01/24
1.8K0
深度解读 java 线程池设计思想及源码实现
转自:https://javadoop.com/2017/09/05/java-thread-pool
Java技术江湖
2019/09/25
6510
Java NIO
通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销。大多数的实现为了避免这个问题,都采用了线程池模型,并设置线程池线程的最大数量,这由带来了新的问题,如果线程池中有200个线程,而有200个用户都在进行大文件下载,会导致第201个用户的请求无法及时处理,即便第201个用户只想请求一个几KB大小的页面。传统的 Server/Client模式如下图所示:
conanma
2021/12/06
4490
ThreadPoolExecutor运行原理
Java并发工具集(J.U.C)是开发中使用使用最多的功能之一,其主要的目的是简化Java并发程序的开发过程。其中使用最频繁的则要数线程池技术。还记得刚从事工作的时候,就参考《Thinking In Java》中的例子实现了在ExecutorService基础之上的文件并发处理程序,现在还在生产环境上稳定运行。本文主要分析J.U.C中线程池的执行过程和工作原理,作为自己学习的一点总结,以下的版本基于JDK8进行分析。
BUG弄潮儿
2021/02/03
1.1K0
ThreadPoolExecutor运行原理
Java并发指南12:深度解读 java 线程池设计思想及源码实现
本文是微信公众号【Java技术江湖】的《Java并发指南》其中一篇,本文大部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作者。
Java技术江湖
2019/11/20
6330
Java并发指南12:深度解读 java 线程池设计思想及源码实现
Java中的队列[通俗易懂]
一个支持两端插入和删除的线性集合,此接口支持容量受限和不受限的双端队列(大多数实现容量不受限)。
全栈程序员站长
2022/09/08
6740
Java中的队列[通俗易懂]
多线程编程学习六(Java 中的阻塞队列).
阻塞队列(BlockingQueue)是指当队列满时,队列会阻塞插入元素的线程,直到队列不满;当队列空时,队列会阻塞获得元素的线程,直到队列变非空。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。
JMCui
2021/12/24
5360
多线程编程学习六(Java 中的阻塞队列).
JavaSE(八)之Collection总结
  前面几篇把集合中的知识大概都详细的说了一遍,但是我觉得还是要总结一下,这样的话,可以更好的理解集合。 一、Collection接口 首先我们要一张图来说明: Collection接口,它是集合的顶
用户1195962
2018/01/18
7000
JavaSE(八)之Collection总结
多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)
在Web应用程序开发领域,基于Ajax技术的JavaScript树形组件已经被广泛使用,它用来在Html页面上展现具有层次结构的数据项。目前市场上常见的JavaScript框架及组件库中均包含自己的树形组件,例如jQuery、Ext JS等,还有一些独立的树形组件,例如dhtmlxTree等,这些树形组件完美的解决了层次数据的展示问题。展示离不开数据,树形组件主要利用Ajax技术从服务器端获取数据源,数据源的格式主要包括JSON、XML等,而这些层次数据一般都存储在数据库中。“无限级树形结构”,顾名思义,没有级别的限制,它的数据通常来自数据库中的无限级层次数据,这种数据的存储表通常包括id和parentId这两个字段,以此来表示数据之间的层次关系。现在问题来了,既然树形组件的数据源采用JSON或XML等格式的字符串来组织层次数据,而层次数据又存储在数据库的表中,那么如何建立起树形组件与层次数据之间的关系,换句话说,如何将数据库中的层次数据转换成对应的层次结构的JSON或XML格式的字符串,返回给客户端的JavaScript树形组件?这就是我们要解决的关键技术问题。本文将以目前市场上比较知名的Ext JS框架为例,讲述实现无限级树形结构的方法,该方法同样适用于其它类似的JavaScript树形组件。
用户9576580
2022/03/19
2.6K0
多叉树结合JavaScript树形组件实现无限级树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)
最小的K个数(手写大顶堆和用优先级队列比较)
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
砖业洋__
2023/05/06
2620
聊聊rocketmq的consumeTimeout
rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
code4it
2019/11/15
1.5K0
聊聊rocketmq的consumeTimeout
[从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务
SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。
罗西的思考
2020/12/22
5630
java解析任意层的json数据(递归解析) 原
/** * JSONObject解析方法(可以解析任意层json,采用递归解析的方法) * @param objJson * @param menu 父菜单实体类 * @param list List<Menu>集合 * @return */ @SuppressWarnings("rawtypes") public static List<Menu> analysisJson(Object objJson,Menu menu,List<Menu> list) { // 如果ob
wuweixiang
2018/08/14
3.2K0
JAVA零基础小白学习免费教程day13-Collection&数据结构
JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。
用户9184480
2024/12/13
760
JAVA零基础小白学习免费教程day13-Collection&数据结构
JavScript中的循环
循环知识 第一部分: 重复运行的代码就可以使用循环来解决。JavaScript的重复机制为循环(loop) for:适合重复动作已知次数的循环。 while:while循环能重复执行动作,直到特定条件语句为true。 for循坏由4部分组成。 1.初始化(initialization):初始化只在循环开始时发生 2.测试条件(test condition):测试条件检查循环是否要再继续 3.动作(action):循环里的动作就是每一轮循环实际重复执行的代码 4.更新(update):循环里的负责更新每一轮循
八哥
2018/01/18
1.9K0
浅谈java线程池(基于jdk1.8)
多线程让程序世界丰富多彩,也让其错综复杂。对于线程的创建和销毁成了一笔不小的开销,为了减少这些开销,出现了线程池。线程池对线程进行管理,对于需要使用多线程的我们来说,只需要把任务丢给线程池就可以了。但当我们把任务丢给线程池的时候,它是如何处理的呢?我们去源码中寻找踪迹。
naget
2019/07/03
8890
python的for循环,背后是什么原理?
其背后的原理是,for 语句对容器对象调用 iter()。该函数返回一个迭代器对象,该对象定义了 __next__() 方法,该方法一次访问一个容器中的元素。当没有更多元素时,__next__() 会引发一个 StopIteration 异常,它告诉 for 循环终止.
zero000
2021/05/31
1.4K0
python的for循环,背后是什么原理?
JAVA入门学习六
描述: 集合的由来数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义太麻烦,java内部给我们提供了集合类能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少;
全栈工程师修炼指南
2020/10/23
6030
JAVA入门学习六
相关推荐
兄dei,你被代码死循环坑了吗?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档