Java中的类变量和实例变量之间有什么区别?

以下是Class(静态)变量与实例变量之间的显着差异。

实例变量静态(类)变量
实例变量在类中声明,但在方法,构造函数或任何块之外。类变量(也称为静态变量)是使用class中的static关键字声明的,但在方法,构造函数或块之外。
当使用关键字“ new”创建对象时创建实例变量,并在销毁对象时销毁实例变量。静态变量在程序启动时创建,在程序停止时销毁。
可以通过在类中调用变量名称来直接访问实例变量。但是,在静态方法中(当实例变量具有可访问性时),应使用完全限定的名称来调用它们。ObjectReference.VariableName可以通过使用类名称ClassName.VariableName进行调用来访问静态变量。
实例变量包含必须由整个类中必须存在的多个方法,构造函数或块或对象状态必不可少的部分引用的值。每个类每个类变量只有一个副本,而不管从中创建了多少个对象。

示例

public class VariableExample{
   int myVariable;
   static int data = 30;
   
   public static void main(String args[]){
      VariableExample obj = new VariableExample();
      
      System.out.println("Value of instance variable: "+obj.myVariable);
      System.out.println("Value of static variable: "+VariableExample.data);
   }
}

输出结果

Value of instance variable: 0
Value of static variable: 30