主要从以下几个方面来解释:
1.定义不同:
静态变量被static关键字修饰,
实例变量前则不加;
2.初始化不同:
静态变量在类加载时初始化;
实例变量在创建类的实例时初始化;
3.所属不同:
静态变量不属于某个实例对象,而是属于类,也叫类变量;
实例变量是属于某个实例对象的,也叫对象变量;
4.存储区域不同:
静态变量存储在静态存储区中;
实例变量存储在堆栈中;
5.内存分配方式不同:
静态变量,随着类的加载而加载,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变 量就可以被使用了;
实例变量,只有在创建实例对象后,实例变量才会被分配空间,才可以被使用。
6.调用方式不同:
静态变量可以通过类名直接调用;
实例变量必须通过类的实例调用(静态变量也可以通过类的实例调用)
7.操作对象个数不同:
静态变量的值在整个程序运行期间都是唯一的,共享的;
实例变量的值是每个实例对象独有的,互不影响
8.生命周期不同:
静态变量的生命周期与类相同;
实例变量的生命周期与实例对象相同