A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiedongchi15 中级黑马   /  2016-1-6 17:02  /  724 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    关于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上面的初始化条件语句就可以及时被释放和回收。
求大神点评

9 个回复

倒序浏览
怎样可以知道是不是被回收了,{}里面的东西你确定都会在运行完回首?
回复 使用道具 举报
1178988315 发表于 2016-1-6 22:01
怎样可以知道是不是被回收了,{}里面的东西你确定都会在运行完回首?

回收不应该是运行完就立马回收,而是垃圾回收器每隔一段时间自动检查并回收。
回复 使用道具 举报
菜鸟围观
回复 使用道具 举报
大括号,不是代码块吗????
回复 使用道具 举报
good............................................
回复 使用道具 举报
{}是局部代码块吧。。。。。
回复 使用道具 举报
局部复合语句?第一次见到诶。。。看来真是孤陋寡闻了
回复 使用道具 举报
1178988315 发表于 2016-1-6 22:13
回收不应该是运行完就立马回收,而是垃圾回收器每隔一段时间自动检查并回收。 ...

应该是这样子,它的内部咱们又看不见,反正在语法上是看不见了
回复 使用道具 举报
rushing 发表于 2016-1-7 12:20
局部复合语句?第一次见到诶。。。看来真是孤陋寡闻了

官方的名字好像叫复合语句,局部是自己加上去的  {:2_40:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马