如果尚未初始化对象,则静态方法/变量实际上是在Java中引用的



我了解静态方法和实例方法之间的基本差异,但是我想知道我的CS final tin静态方法?

FooClass.staticMethod();

我猜想它必须初始化类,然后调用该方法,但这意味着它不是真正 static,因为它仍在引用一个对象而不是类。任何解释都将受到赞赏,因为我真的希望对这个话题有更多的了解,并在此先感谢

FooClass在您的示例中不是对象,它只是一个标识符,告诉java编译器哪个类包含 staticMethod。的确,引用类引用类的程序会导致该类被加载和初始化(并且还创建一个对象来表示该类,这可以通过FooClass.class访问),但这并不意味着staticMethod实际上是类的实例方法目的。不是。this内部没有任何意义。

(实际上,在最低级别上,调用静态方法的字节码指令与调用实例方法的字节码不同。)

最新更新