是否为Java中的每个对象创建调用此代码,因为每个对象都扩展对象?或者JVM是否以某种方式优化它以避免在堆中创建一些 Object的对象。
此方法究竟发生了什么 registerNatives()。
package java.lang;
public class Object {
private static native void registerNatives();
static {
registerNatives();
}
答案 0 :(得分:2)
答案 1 :(得分:1)
registerNatives().
做什么并不重要。这里重要的是你将它包含在静态块中。在Java Class Loader加载类时加载并运行静态块。因此可以保证每个JVM只运行一次。
答案 2 :(得分:0)
1。这里的问题是不关于构造函数链接,但关于静态。
<强> 2。当JVM加载类时,将初始化静态变量,当实例化类或调用该类的任何静态方法时,JVM会加载该类。
3。因此每次JVM加载类时都会运行此静态块。