在java中调用静态方法

在java中调用静态方法,java,static-methods,Java,Static Methods,可能重复: 有人能解释为什么下列程序的输出被称为“”吗 我知道我们可以使用类引用调用静态方法,但这里我使用null引用调用。请在字节码中澄清我的疑问 Test4 t4 = null; t4.method(); 将是 Test4 t4 = null; Test4.method(); 编译器将使用静态方法的类名转换调用。请参考我自己问过的问题。静态方法可以通过类名或实例调用。 我会尽量避免通过实例调用它们(也有很多工具会警告您这样做,因为实践不好)。实例是否为空并不重要,因为您正在调用一个静态

可能重复:

有人能解释为什么下列程序的输出被称为“”吗

我知道我们可以使用类引用调用静态方法,但这里我使用null引用调用。请在字节码中澄清我的疑问

Test4 t4 = null;
t4.method();
将是

Test4 t4 = null;
Test4.method();

编译器将使用静态方法的类名转换调用。请参考我自己问过的问题。

静态方法可以通过类名或实例调用。
我会尽量避免通过实例调用它们(也有很多工具会警告您这样做,因为实践不好)。

实例是否为空并不重要,因为您正在调用一个静态方法。 这样想吧

每个静态方法类方法等价,而非静态方法与类方法
等价 一个实例方法

因此,只要您使用的是静态方法或成员,实例的值就不重要了

Test4 t4 = null;
Test4.method();