gpt4 book ai didi

java - 如果对象尚未初始化,静态方法/变量在 java 中实际引用什么?

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:11 26 4
gpt4 key购买 nike

我了解静态方法和实例方法之间的基本区别,但我对我的 CS final 感到疑惑,因为它没有包含在我们的书中:当您调用静态方法时,您的代码实际上引用了什么?

FooClass.staticMethod();

我猜它必须初始化类然后调用方法,但这意味着它不是真正静态的,因为它仍然引用对象而不是类。感谢任何解释,因为我真的想更深入地了解这个主题,并提前致谢

最佳答案

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

(其实在最底层,调用静态方法的字节码指令和调用实例方法的字节码指令是不一样的。)

关于java - 如果对象尚未初始化,静态方法/变量在 java 中实际引用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41118213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com