Java 实际上对空语句做了什么吗?
Does Java actually do something with empty statements?
官方文档只是说
14.6. The Empty Statement
An empty statement does nothing.
(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.6)
像;;;;;;;;;;;
这样的语句实际上是由Java 编译器编译的吗?
如果是这样,这些语句是否需要时间来执行,如 nop
?
简而言之:空语句真的可以 "nothing" 吗?
java 编译器对这些语句不做任何处理。因此,它们被忽略了。
下面的方法
public static void test(){
;;;;;;;;
}
只需编译为以下字节码:
public static void test();
descriptor: ()V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: return
LineNumberTable:
line 39: 0
编译器只是在某些编译策略中使用 NOP。
官方文档只是说
14.6. The Empty Statement
An empty statement does nothing.
(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.6)
像;;;;;;;;;;;
这样的语句实际上是由Java 编译器编译的吗?
如果是这样,这些语句是否需要时间来执行,如 nop
?
简而言之:空语句真的可以 "nothing" 吗?
java 编译器对这些语句不做任何处理。因此,它们被忽略了。 下面的方法
public static void test(){
;;;;;;;;
}
只需编译为以下字节码:
public static void test();
descriptor: ()V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: return
LineNumberTable:
line 39: 0
编译器只是在某些编译策略中使用 NOP。