Java变量类型
在Java语言中,所有的变量在使用前必须提前声明。
Java语言支持的变量类型有三种:
- 类变量:类中,方法体外,用static关键字修饰的变量,也叫静态变量
- 实例变量:类中,方法体外,没有static关键字修饰
- 局部变量:类中,方法体中的变量
public class Main{
// 类变量/静态变量
static int a = 10;
// 实例变量
int b = 20;
public static void main(String[] args){
// 局部变量
int c = 30;
}
}
以下,我们根据作用域从小到大介绍
Java局部变量
- 位置:方法、构造方法或语句块中
- 生命周期:方法、构造方法或语句块被执行时创建,该条方法执行完后被销毁
- 不可以使用访问修饰符
- 作用域:局部变量只在声明它的方法、构造方法或语句块中可用
- 内存位置:JVM的虚拟机栈中
- 默认值:局部变量没有默认值,必须赋值后才能使用
Java实例变量(成员变量)
- 位置:类中,方法体外
- 生命周期:和创建的类实例声明周期一致,在实例被创建时初始化,在实例被垃圾回收时跟随类实例被回收
- 实例变量可以声明在使用前或者使用后
- 作用域:根据使用的访问修饰符不同而不同,通常使用private关键字将类的实例变量私有化,仅在类内部可见,在类内部构建方法操作实例变量
- 内存位置:引用地址存放在虚拟机栈中,变量实例存放在跟随类实例存放在堆中
- 默认值:整型0,布尔型false,引用类型null
- 访问方式:可以直接通过变量名访问,但在静态方法和其它类中,使用类.变量名访问
Java类变量(静态变量)
- 类变量也叫静态变量,在类中、方法体外,用static关键字修饰
- 声明周期:在类加载阶段,类的字节码被加载到JVM中,该类的静态变量就会初始化,存放在方法区中,静态变量的声明周期取决于类的声明周期,类被卸载时,静态变量被销毁,并释放内存空间,通常在程序结束时被销毁。
- 作用域:与实例变量有相似的可见性,但是为了类的使用者可见,大多数静态变量声明为public类型。
- 默认值:与实例变量一样。
- 访问方式:类名.变量名