静态变量 又称类变量
一、区别
1.定义位置
局部变量:在方法内部
实例变量:在类中,方法外面
静态变量:在类中,方法外面
2.作用范围
局部变量:方法内有效
实例变量:整个类都可用
静态变量:整个类都可用,可以直接被类调用
3.默认值
局部变量:没有默认值,使用之前需要赋值
实例变量:有默认值
静态变量:有默认值
4.内存位置
局部变量:在栈内存
实例变量:在堆内存
静态变量:在方法区
5.生命周期
局部变量:与所在方法的生命周期相同
实例变量:当创建所在类的对象时生效,对象被垃圾回收后失效
静态变量:随着类的加载而存在,随着类的消失而消失
二、变量的使用总结
public class Test{
int a;//实例变量,有默认值
public void method(int b;/*局部变量*/){
int c;//局部变量,无默认值
System.out.println(c);
//如果打印直接打印变量 c 程序编译会出错,必须进行赋值
System.out.println(b);
//如果打印直接打印变量 b 程序编译不会出错
//虽然 b 没有进行赋值,但是在方法调用时,必然会给方法传递参数,b 也就被赋值了
}
}
在代码编写过程中要尽量缩小变量的作用范围,变量在内存中存留时间越短,性能越高。
public class Test {
static int a;//静态变量
}
class Test1 {
public static void main(String[] args) {
System.out.println(Test.a);//静态变量在其它类中直接用类名.变量名
}
}