gpt4 book ai didi

java - 为什么 Java 中的 try/catch 或 synchronized 需要语句 block ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:53 26 4
gpt4 key购买 nike

<分区>

Java 允许某些关键字后跟语句或语句 block 。例如:

if (true)
System.out.println("true");

do
System.out.println("true");
while (true);

编译以及

if(true) {
System.out.println("true");
}

do {
System.out.println("true");
} while (true);

对于 forwhile 等关键字也是如此。

但是,某些关键字不允许这样做。 synchronized 需要一个 block 语句。与 try ... catch ... finally 相同,它要求关键字后至少有两个 block 语句。例如:

try {
System.out.println("try");
} finally {
System.out.println("finally");
}

synchronized(this) {
System.out.println("synchronized");
}

有效,但以下内容无法编译:

try
System.out.println("try");
finally
System.out.println("finally");

synchronized (this)
System.out.println("synchronized");

那么,为什么 Java 中的某些关键字需要 block 语句,而其他关键字允许 block 语句和单个语句?这是语言设计上的不一致,还是有一定的原因?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com