转到java支持吗?

时间:2013-02-28 01:20:11

标签: java obfuscation goto

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

2 个答案:

答案 0 :(得分:3)

Java关键字列表指定goto关键字,但保留保留。意味着它没有被使用。

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

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

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

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

答案 1 :(得分:2)

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

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

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

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

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