在Java中,
static关键字通常将一个方法或字段标记为不存在,而不是每个类实例一次,而是一次。一个类一旦存在就已经存在,因此实际上,所有类都以这种方式是“静态的”,并且所有对象都是该类的实例。
static确实对 内部
类具有含义,这是完全不同的:通常,内部类实例可以访问与其绑定的外部类实例的成员,但是如果内部类为
static,则它没有这样的引用并且可以实例化没有外部类的实例。也许您看到了某个地方,然后尝试在没有意义的顶级类上使用它。
或者,也许您在其他语言(例如C#)中看到了它,其语法像Java一样可怕。
(有一次我无法弄清楚为什么没有对外部类实例进行垃圾回收-
这是因为我在其他地方引用了其中一个内部类实例,而内部类不是
static,因此有一个引用外部类实例。因此,默认情况下,我
static现在创建内部类。)



