作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
官方文档只是说
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
?简而言之:空语句真的“什么都不做”吗?
最佳答案
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。
关于java - Java 真的用空语句做些什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963600/
C# language specification定义了empty-statement 语法产生式,它允许我做这样的事情: static void Main(string[] args) {
由第1章已知,一个程序包含一个或多个程序单位(每个程序单位构成一个程序文件)。每一个程序单位由以下几个部分组成: 如果一个变量在函数之外进行声明,此变量是全局变量,它的有效范围是从该行开始到本程序
我是一名优秀的程序员,十分优秀!