一、java类的成员变量有两种: (静态变量,实例变量)
1.被static关键字修饰的变量,叫类变量或者静态变量。
1.1: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,
1.2: 静态变量位于方法区,被类的所有实例共享。
1.3: 静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
1.4: 静态变量是类相关的变量,所以他的生命周期是从这个类被声明,到这个类彻底被垃圾
回收机制彻底回收才会被销毁。
2.另一种没有static修饰,为实例变量
2.1:实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,
2.2:实例变量位于堆区中,其生命周期取决于实例的生命周期。
2.3:实例变量是这个类的对象里的变量,它和静态变量不同,它只能由创建出的对象来调用。
2.4:所以实例变量是从这个对象(其实就是实例)被创建开始,直到这个对象没有任何引用变量
去引用它,最终被垃圾回收站回收,这时这个实例变量也跟着就消失了。
2.5:只要对象被当作引用,实例变量就将存在。
总而言之:静态变量生命周期就是类的开始和销毁
实例变量生命周期就是对象的开始和销毁.
二、局部变量
1.作用域: 在你定义的范围内有效。
2.作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。
初始化
1:局部变量在使用前必须被程序员主动的初始化,
2:成员变量则会被系统提供一个默认的初始值。
所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。
引用:所有类的成员变量可以通过this来引用。