静态变量也被称为类变量
非静态变量也被称为实例变量
成员变量和局部变量的区别
1.声明的位置
- 局部变量:方法体{}中,形参,代码块{}中
- 成员变量:类中方法外
类变量:有static修饰
实例变量:没有static修饰
2.修饰符
- 局部变量:final
- 成员变量:public\protect…
3.值存储位置不同
- 局部变量:栈
- 成员变量:
实例变量:堆
类变量:方法区
//4.作用域
- 局部变量:从声明处开始,到所属的}结束
5.生命周期
- 局部变量:每一个线程,每一次调用执行都是新的生命周期
- 成员变量:
实例变量:随对象的创建而初始化,随对象的被回收而消亡,每一个对象的实例变量是独立的
类变量:随类的初始化而初始化,随类的卸载而消亡,该类的所有对象的类变量是共享的
6.初始值不同
- 局部变量:没有初始值
- 成员变量:有默认初始值
也就是对象或变量实例放在堆中,对对象实例的引用放在栈中