java retry_java里面的retry:

今天在看java线程池的源码的时候,看到ThreadPoolExecutor里面的addWork()方法有下图中的这种写法,因为之前没有见过,所以好奇研究了一下

6836608a23e1

首先这个retry不是java里面的关键字,所以那个retry可以用任何合法的变量名替换,例如hello:等。

下面我们再来看一下这个到底有什么用

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

System.out.print(count+" ");

}

}

}

}

上面这段代码,会打印1~10一共10个数

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

if (count == 3){

break;

}

System.out.print(count+" ");

}

}

}

}

我们在里面加一个条件判断,当count=3的时候就跳出当前循环,所以只打印1245678。

我们再看一下下面的代码会打印什么

public class RetryDemo {

public static void main(String[] args) {

int count = 0;

retry:

for (int i = 0; i < 2; i++){

for (int j = 0; j < 5; j++){

count++;

if (count == 3){

break retry;

}

System.out.print(count+" ");

}

}

}

}

我们再代码里面加了一个retry:当count==3的时候break retry; 聪明的你可能已经猜到了,这段代码只会打印12。break retry;是跳出了整个的两层循环。

这里我的理解是这个retry相当于是一个标记符,标识的是break的跳转位置。当然continue也是同样的道理。

有兴趣的朋友可以试一下continue会发生什么样的事情,这里我就不演示了。

纸上得来终觉浅,有些地方我可能表达不太清楚,自己尝试在自己项目里面运行一下上面代码,相信能加强你的理解。

如果我有讲的不对的地方,欢迎各位大佬评论指出,也可以加微信一起探讨👇

6836608a23e1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值