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(;;) {} 的字节码信息.

你可能感兴趣的:(java,关键字)