1

不支持 java 中的关键字“goto”。我曾经在某处读过它在 java 字节码受支持,并且有一个混淆器使用它来创建不可读的意大利面条代码。但是,我再也找不到这个页面了,所以我在这里问这个问题:goto 关键字是否以编译形式工作?

4

2 回答 2

3

Java 关键字列表指定 goto 关键字,但它是保留的。表示未使用。

如果您尝试使用它会显示错误

这可能是为了将其添加到更高版本的 Java 中。

如果 goto 不在列表中,并且稍后将其添加到语言中,则使用 goto 这个词作为标识符(变量名称、方法名称等)的现有代码将会中断。但是因为 goto 是一个关键字,所以这样的代码现在甚至无法编译,并且它仍然有可能在以后使其实际执行某些操作,而不会破坏现有代码。

查看此视频.. James gosling 讲述 goto ...他在设计 java 编译器时使用 goto

于 2013-02-28T01:21:14.167 回答
2

是的,“goto”是 JVM 的一部分。许多结构都依赖于它(如 if / else、while 等)。

它相当于汇编语言中的“调用”。

但你是对的,它在 java 源代码中不可用,仅在字节码中可用。

其他基于 jvm 的语言可能会实现它。

这是关于它的 Jasmin 页面: https : //www.vmth.ucdavis.edu/incoming/Jasmin/ref-_goto.html(操作码是 0xA7)

于 2013-02-28T01:26:30.730 回答