class变量和静态变量在Java中是否相同?

Are class variables and static variables same in Java?

我知道 class 变量是静态的,并且在 class 的所有对象之间共享。如果是这样,我不确定静态变量是什么。

此外,维基百科声明 class 变量不应与静态变量混淆。

根据@Zar 在评论中给出的link

Fields that have the static modifier in their declaration are called static fields or class variables.

所以您的问题的答案是,是的,在 Java 中它们是相同的。

如果我理解,你问的区别是:

int a;

static int a;

如果两者都定义为 class 变量(它们不在方法内部),主要的实际区别是范围和生命周期。

静态变量永远不会从内存中删除,并且(如果设置 public)可以从项目的任何位置访问。

static修饰符的主要描述是它脱离了class,所以:

您无需实例化任何对象即可使用静态方法。

您不需要实例化任何对象来获取静态变量。

您不能在静态方法中访问非静态 class 变量(基本上您不能使用 "this")

希望对您有所帮助。

静态变量也称为class变量。它是通过使用静态修饰符声明的。 class只创建了一份静态变量,所以称为class变量。