这是农历2020年,全CSDN第一篇文章!
在java中,根据定义变量位置的不同,可以将变量分成两大类型:
- 成员变量
- 局部变量
Java成员变量和局部变量
- 成员变量:在类里定义的变量是成员变量
- 局部变量:在方法中定义的变量是局部变量
成员变量分为类变量和实例变量两种
- 实例变量:没有static修饰是实例变量,实例变量是从该类创建时存在,直到系统完全销毁这个实例,实例变量的作用域与对应实例的生存范围相同。
- 类变量:有static修饰的就是类变量,类变量从该类准备阶段开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生存范围相同。
局部变量根据定义的形式不同,可以分为三种
- 形参:在定义方法签名时定义的变量,形参的作用域在整个方法内有效。
- 方法局部变量:在方法体内定义的局部变量,它的作用域是从定义该变量的地方生效,到该方法结束时失效。
- 代码块局部变量:在代码中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效到该代码块结束时失效。
代码实例:
public class Main {
//成员变量:实例变量
private static String name = "第三女神";
//成员变量:类变量
private int age = 25;
public static void main(String[] args) {
{
//代码块局部变量
int value = 27;
}
new Main().function(name);
}
//copy即是形参
private void function(String copy) {
//方法局部变量
int age = 26;
}
}
成员变量的初始化和运行机制
当系统加载类或者创建这个类的实例时,系统自动为成员变量分配内存空间,并在分配存储空间后,自动个为成员变量指定初始值!
局部变量的初始化和运行机制
局部变量定义后,必须经过显示初始化后才能使用,系统不会为局部变量执行初始化,这意味着定义局部变量后,系统并没有为这个变量分配内存空间,直到这个程序为这个变量赋值初始值时,系统才会为局部变量分配内存空间,并将初始值保存到这块内存中!