变量的作用域:
变量的作用域是指变量存在的范围,只有在这个范围内才有小效,程序才能访问,
作用域决定了变量的生命周期;
【成员变量:在类中定义的变量,起作用于着整个类 】
【static修饰变量,方法】
【局部变量:看其变量定义的位置;】
方法参数:方法或构造方法的参数;作用域在该方法中;
异常参数:异常参数,作用域后面紧跟的异常代码块;
静态变量与实例变量的生命周期:
静态变量一般通过【类名.静态变量】访问,也可以通过【实例】来访问;
public calss Test{
public int a=0;//实例变量
public static int b=0;//静态变量
}
静态变量位于JVM的方法区;实例变量位于Jvm的堆区;
java中使用new关键字时,创建该类的对象;实例变量之和自己的实例有关;
【实例变量和静态变量如果是引用类型,那么该变量销毁的时候,并不意味着其引用的对象销毁;反之,该变量所
引用的对象销毁,其自身不一定销毁;引用变量的生命周期和对象的生命周期是两回事;】
【静态变量访问: 类名.变量名; 实例变量访问:引用变量.变量名】
局部变量的生命周期:
静态变量,实例变量,局部变量的生命周期演示:
public calss Test2{
int a=1;//实例变量
static int b=2; //静态变量
public int sum(){
int c=a+b;//局部变量
return c;
}
public void show(){}
public static void main(String []args)
{
Test2 tets2=new Test2();
test2.sum();
test2.show();
// new Test2().sum();
//new Test2().show();
}
}
*JVM加载Test2类,静态变量c的生命周期开始,存储空间在方法区;
JVM创建Test2类的实例,实例变量的生命周期开始,存储空间在堆区;
调用sum()方法,局部变量c的生命周期开始,存储空间在栈区;
局部变量的最小作用域:
【定义与使用局部变量应该做到将其作用于最小化 】;