以下是有效的Java程序:
public class _ {
public static void main(String[] args) {
{
{
{
{
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这些花括号是否会增加额外的语义?或者他们被视为空白?
花括号只是在main方法中创建一个局部块范围.在块内声明的变量在外部不可见.
这种编码方式用于最小化局部变量的范围.
public void someMethod() {
{
int x = 10;
System.out.println(x); // Ok
}
System.out.println(x); // Error, x not visible here
}
Run Code Online (Sandbox Code Playgroud)
最小化您创建的局部变量的范围是一种很好的做法,特别是当您知道它们不会在程序中的任何其他位置使用时.因此,将它放在更大的范围内直到它结束是没有意义的.只需创建一个本地块范围,以便Garbage Collection在块结束后它就有资格获得.
另请参阅@Bohemian's下面的答案,其中还引用了另一个好处.