疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java 之 goto 关键字


 

  在Java程序设计语言中保留了goto关键字,可是不能对其进行使用。不过在JVM中的指令集中,却包含了goto操作码。

  考虑下面一个方法,该方法包含了一个死循环,当执行完一次循环体后,执行引擎会执行goto指令,返回到循环开始处。

  Java代码 1. public void findGoto() {

  2. for(;;) {

  3.

  4. }

  5. }

  public void findGoto() {

  for(;;) {

  }

  }

  编译后查询该类的字节码信息:

  字节码代码 1. public void findGoto();

  2. flags: ACC_PUBLIC

  3. Code:

  4. stack=0, locals=1, args_size=1

  5. 0: goto 0

  6. LineNumberTable:

  7. line 7: 0

  8. StackMapTable: number_of_entries = 1

  9. frame_type = 0 /* same */

  public void findGoto();

  flags: ACC_PUBLIC

  Code:

  stack=0, locals=1, args_size=1

  0: goto 0

  LineNumberTable:

  line 7: 0

  StackMapTable: number_of_entries = 1

  frame_type = 0 /* same */

  观察 0: goto 0这一行。其实就是for(;;) {} 的字节码信息.