java每次循环完清理一次垃圾_Java的垃圾收集器会继续处理循环中声明的变量吗?...

这可能有助于理解for循环背后的语法。这在

JLS Section 14.14.1

.

BasicForStatement:

for ( ForInitopt ; Expressionopt ; ForUpdateopt ) Statement

...

Statement:

StatementWithoutTrailingSubstatement

...

StatementWithoutTrailingSubstatement:

Block

EmptyStatement

ExpressionStatement

...

Block:

{ BlockStatementsopt }

BlockStatements:

BlockStatement

BlockStatements BlockStatement

BlockStatement:

LocalVariableDeclarationStatement

ClassDeclaration

Statement

语句可以是单个语句,也可以是块(用大括号括起来的语句)。一个块表示一个新的词法范围,其中声明的变量仅是该块的本地变量。很多人没有意识到的是,这并不是for循环所独有的。我可以在方法中的任何位置放置块语句:

public void someMethod() {

{

List myList = new ArrayList();

System.out.println(myList);

}

System.out.println(myList.size()); //compile error: myList out of scope

}

无论如何,这不是我想要的。可以说,这与它是循环的事实关系不大,而与它是块的事实关系更大(如果选择不使用block语句,则不能声明新的局部变量,因此问题无关紧要)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值