代码:
while(true){
//2.
Socket s = ss.accept();
// Thread updateThread = new Thread(new UpdateTask(s));
// updateThread.start();//开启线程
// -- 使用线程池 --
threadPool.execute(new UpdateTask(s));
}
上面代码每次new UpdateTask();但是没跳出循环,java每次执行完一个Runnable任务后会不会释放UpdateTask()的内存?如果不会,要怎样释放?
while可以用作无穷循环,很多地方都用到无穷循环。一个无穷循环如下所示:
while(true) {
循环内容;
...
}
无穷循环可以由自己循环中的某个条件式来结束。下面是一个循环内部终止的例子:
while(true) {
语句;
if(条件式)
break; // 跳离循环
...
}
当条件式成立时,会执行break离开while循环,这个break与switch中的作用是一样的,都是要离开当时执行的程序块时使用。
class TestWhile
{
public static void main(String[] args)
{
while(true)
{
System.out.println( "执行 ");
//值为真用break跳出执行while之后的语句
if(true)
{
break;
}
System.out.println( "继续执行 ");
}
}
}
//无穷循环固定格式为while(true),其中括号里的值固定为boolean型,并且要为真时,才会执行下面的语句.
class TestWhile
{
public static void main(String[] args)
{
boolean flag = false;
while(flag) //这时括号里的值为假,所以下面的语句都不会执行.如果改成while(!flag)就可以执行了.
{
System.out.println( "while为真时执行 ");
//值为真用break跳出执行while之后的语句
if(true)
{
break;
}
System.out.println( "继续执行 ");
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。