首页 > 解决方案 > 我们可以从空引用访问静态成员吗​​?如果是,为什么允许这样做?

问题描述

我们可以从 Java 中的空引用访问静态成员吗​​?如果是,为什么允许这样做?它在内部是如何工作的?

标签: javareferencestaticnull

解决方案


是的; “Java 允许通过空引用访问静态字段”。

原因:

在 Java 中,不需要对象实例来解析静态字段。对静态字段的访问由 getstatic 指令处理,它不需要对象实例。它使用运行时常量池来解析字段。

参考:

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.getstatic

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html


推荐阅读