1
  // Method descriptor #8 ()V
  // Stack: 3, Locals: 1
  public EGLConfig();
     0  aload_0 [this]
     1  invokespecial java.lang.Object() [1]
     4  new java.lang.RuntimeException [2]
     7  dup
     8  ldc <String "Stub!"> [3]
    10  invokespecial java.lang.RuntimeException(java.lang.String) [4]
    13  athrow
      Line numbers:
        [pc: 0, line: 4]
      Local variable table:
        [pc: 0, pc: 14] local: this index: 0 type: javax.microedition.khronos.egl.EGLConfig
}

任何人都可以“阅读”这个吗?

4

1 回答 1

5

Java 虚拟机规范记录了 Java 字节码指令的含义以及 JVM 如何处理它们。

它看起来像这样,当翻译成 Java 时:

// Constructor of class EGLConfig
public EGLConfig() {
    super();
    throw new RuntimeException("Stub!");
}

逐行:

 0  aload_0 [this]
 1  invokespecial java.lang.Object() [1]

压栈this(对当前对象的引用)并调用超类的构造函数,即Object.

 4  new java.lang.RuntimeException [2]
 7  dup
 8  ldc <String "Stub!"> [3]
10  invokespecial java.lang.RuntimeException(java.lang.String) [4]

创建一个新RuntimeException对象并调用其构造函数,该构造函数采用String; 它传入字符串"Stub!"

13  athrow

抛出RuntimeException.

于 2012-06-21T07:33:58.680 回答