静态变量和实例变量的区别是:1、存储区域不同;2、生命周期不同;3、程序运行不同。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放)。
一、静态变量和实例变量的区别
1、存储区域不同
静态变量存储在静态存储区域,实例变量存储在堆中,会被释放。
2、生命周期不同
静态变量在类启动时就分配指定内存;实例变量在被对象调用后才分配内存,调用结束时内存释放。
3、程序运行不同
实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。而静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
4、语法定义不同
静态变量用static修饰,实例变量没有static修饰。
延伸阅读:
二、什么是静态变量
静态变量 类型说明符是static。 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。 静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。 另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。
以上就是关于静态变量和实例变量的区别的内容了,希望对大家有帮助。