踩坑日记 1

将会不间断的更新一些我遇到的坑

,可能是开发相关,
也可能不相关,可能很基础,可能很高深

while的问题

1
2
3
4
5
6
7
8
9
10
11
12
public class Demo{
private static void test(){
boolean flag = true;
while (flag){
int a = 3;
// 具体逻辑
if(8 == a){
flag = false;
}
}
}
}

上述代码逻辑其实毫无问题,平常编码中我们可能也经常用,
但是有一个问题我们可能不好碰见,但真实存在,试想一下,
如果出循环的条件不好满足,一直陷在循环里会怎样?实际
的情况就是机器的cpu飙升,服务是可用的,但是会很慢,
直至卡死,所以写while时需要慎重,尽量在实际工作中少用
while,如果避免不了,加一个重试次数,虽然逻辑不是太严谨,
但是服务没问题,从产出看也没问题,不建议,下下之策,尽量
少用while ,上述的重拾次数添加后应该是这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Demo{
private static void test(){
boolean flag = true;
// 最大充实次数5次
int count = 0;
while (flag){
if(5 == count){
flag = false;
// 退出循环,通知用户系统繁忙,稍后重试
}
int a = 3;
count++;
// 具体逻辑
if(8 == a){
flag = false;
}
}
}
}