![]() |
1
1
这些信息来自java11,并且与内部类如何访问外部类的方法和变量有关。 您可以在这里阅读更多关于此的信息: openjdk.java.net/jeps/181 编辑: 让我们考虑以下示例:
如果用java8(左侧)和java11(右侧)编译这个类,可以看到以下区别:
|
![]() |
2
2
在Java级别的字节码中存储了大量的元数据,对字节码的执行没有直接的影响。这有几个原因是有用的。首先,Java具有反射库,它提供对该信息的访问,因此必须在运行时对JVM可用。其次,它允许您针对仅二进制的库进行编译。 “无用”特性的另一个例子是throws子句(作为可选属性存储在字节码中)。这些是必需的,这样您就可以在没有源代码的情况下对类文件进行编译,但对字节码的执行没有影响。 |