成员变量和局部变量的区别
1.定义位置上看
成员变量定义在类中,局部变量定义在方法中、或者语句中
2.内存的存储
成员变量跟随对象在堆中存储
局部变量跟着方法在栈内存存储
3.生命周期
成员变量堆内存存储,声明周期较长
局部变量栈内存存储,使用完毕后就消失,声明周期较短
4.作用范围
成员变量作用范围是整个类,最大
局部变量只在方法、语句中有效,最小
5.初始化赋值
成员变量堆内存,有默认值
局部变量栈内存,必须手动赋值
静态成员变量和非静态成员变量的区别
1.static修饰成员变量、类变量 ------- 属于类
非静态成员变量、实例变量、对象变量 ------- 属于对象
2.内存位置
静态,跟随类的加载而加载,随着类的消亡而消亡,方法区
非静态,跟随对象在堆中,没有引用变量后,成为垃圾
3.生命周期
静态随着类的加载而加载,生命最长
非静态成员变量,随着对象加载,生命相对较短
4.调用方式
静态,可以被类名、对象调用,使用类名
非静态,只能对象调用
5.作用意义
静态是所有对象共享数据
非静态是每个对象的特有数据