开发者社区> 问答> 正文

Java关于死循环创建对象释放内存的问题

代码:

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()的内存?如果不会,要怎样释放?

展开
收起
蛮大人123 2016-05-27 15:37:14 6117 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    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( "继续执行 "); 
                  }
            }
    }
    2019-07-17 19:18:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载