静态变量和局部变量的对比
变量的分类:
按照数据类型分:① 基本数据类型 ② 引用数据类型
按照在类中声明的位置分:
① 成员变量:在使用前,都经历过默认初始化赋值。
类变量(静态的成员变量): linking的prepare阶段:给类变量默认赋值。 —> initial阶段:给类变量显式赋值即静态代码块赋值。
实例变量(非静态的成员变量):随着对象的创建,会在堆空间中分配实例变量空间,并进行默认赋值
② 局部变量:在使用前,必须要进行显式赋值的!否则,编译不通过。
成员变量:
类体内定义的变量被称为成员变量。如果定义该成员变量时没有使用static修饰,该成员变量又被称为非静态变量或实例变量;如果使用了static修饰,则该成员变量又可被称为静态变量或类变量。
public class Test01 {
static int a;//类变量 or 静态变量
int b;//实例变量 or 非静态变量
public static void main(String []args) {
}
}
局部变量
形参:在方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法的结束而消亡。
方法内的局部变量:在方法内定义的局部变量,必须在方法内对其进行显示初始化。这种类型的局部变量从初始化完成后开始生效,随方法的结束而消亡。
代码块的局部变量:在代码块内定义的局部变量,必须在代码块内对其进行显式初始化,这种类型的局部变量从初始化完成后开始生效,随代码的结束而消亡。



浙公网安备 33010602011771号