黑马程序员技术交流社区

标题: java基础讨论-循环 [打印本页]

作者: xiedongchi15    时间: 2016-1-6 17:02
标题: java基础讨论-循环
    关于while循环的另一种使用方式
        国外很多大神喜欢用for循环,因为for循环的初始化条件是放在循环体内部,for(int i = 0;i<10;i++){//循环体};如此一来,循环结束后初始化条件就会被释放,并被gc回收。
    而while循环只有圆括号()内的条件判断,和花括号{}内的循环体,没有初始化条件,如果需要初始化条件必须要在循环之前声明,但是当while循环条件结束以后,初始化条件的变量依然有效,

java中可以直接用一个花括号{}括起来的语句叫做局部复合语句,该语句中的变量只在括号中有效,复合语句执行完毕,就会释放内部的局部变量或引用等,如果想要让while达到for循环的效果可以用
{
int i = 0;
while(i<10)i++;
}
这样当while循环结束后,while上面的初始化条件语句就可以及时被释放和回收。
求大神点评

作者: 1178988315    时间: 2016-1-6 22:01
怎样可以知道是不是被回收了,{}里面的东西你确定都会在运行完回首?
作者: 1178988315    时间: 2016-1-6 22:13
1178988315 发表于 2016-1-6 22:01
怎样可以知道是不是被回收了,{}里面的东西你确定都会在运行完回首?

回收不应该是运行完就立马回收,而是垃圾回收器每隔一段时间自动检查并回收。
作者: shenfuhan    时间: 2016-1-6 22:36
菜鸟围观
作者: StringBOX    时间: 2016-1-6 23:10
大括号,不是代码块吗????
作者: Dabing大兵    时间: 2016-1-7 10:14
good............................................
作者: 呵呵1122    时间: 2016-1-7 11:57
{}是局部代码块吧。。。。。
作者: rushing    时间: 2016-1-7 12:20
局部复合语句?第一次见到诶。。。看来真是孤陋寡闻了
作者: xiedongchi15    时间: 2016-1-7 18:43
1178988315 发表于 2016-1-6 22:13
回收不应该是运行完就立马回收,而是垃圾回收器每隔一段时间自动检查并回收。 ...

应该是这样子,它的内部咱们又看不见,反正在语法上是看不见了
作者: xiedongchi15    时间: 2016-1-7 18:45
rushing 发表于 2016-1-7 12:20
局部复合语句?第一次见到诶。。。看来真是孤陋寡闻了

官方的名字好像叫复合语句,局部是自己加上去的  {:2_40:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2