在语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。
在程序运行时的区别:静态变量则可以直接使用类名来引用。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。且一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝。在 Java 开发中,上下文类和工具类中通常会有大量的静态成员。
实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。