当前位置:  开发笔记 > 编程语言 > 正文

Java中有分支/跳转表吗?

如何解决《Java中有分支/跳转表吗?》经验,为你挑选了1个好方法。

Java有类似于分支或跳转表的东西吗?

根据维基百科,分支或跳转表是

用于描述使用分支指令表将程序控制(分支)转移到程序的另一部分(或可能已动态加载的不同程序)的有效方法的术语.

Java是否有这样的东西,或者我只需要使用if/else if/else或case语句?



1> Todd Gamblin..:

Java有一个switch语句,但它是否编译为字节码中的跳转表是依赖于实现的.通常,如果编译器在switch语句中为每个case找到了很好的常量,那么编译器会为你构建一个跳转表.不过,我不确定你应该真正关心它是如何实现的.如果您首先使用Java进行编码,那么您可能很乐意让编译器和JIT为您处理这些事情.

请注意,switch仅适用于整数基元类型和枚举,因此如果您正在使用其他对象类型,需要使用if/else语句(并且您可能不应该比较双精度或浮点数以确保相等).

最后,即使枚举引用在技术上是"常量",如果你的switch语句在定义枚举的同一个编译单元中,一些编译器只会在你打开枚举时生成一个跳转表.否则,它将生成一个if/else链(就像你必须为常规对象做的那样).有关细节的详细信息,请参阅有关扩展对象的交换机用法的java.net论坛.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有