1.Java语言支持的变量类型有:
- 类变量:独立于方法之外的变量,用 static 修饰。
- 实例变量:独立于方法之外的变量,不过没有 static 修饰。
- 局部变量:类的方法中的变量。
实例
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
2.成员变量、局部变量、静态变量的区别
类变量(静态变量) | 实例变量(成员变量) | 局部变量 | |
定义位置 | 在类中,方法外 | 在类中,方法外 | 方法中,或者方法的形式参数 |
初始化值 | 有默认初始化值 | 有默认初始化值 | 无默认初始化值,被声明后,必须经过初始化,才可以使用 |
调用方式 | 对象调用,类名调用 | 对象调用 | --- |
存储位置 | 方法区 | 堆中 | 栈中 |
生命周期 | 与类共存亡 | 与对象共存亡 | 与方法共存亡 |
- 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
- 类变量默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
3.注意:
每次创建一个新对象就会分配一个实例变量,而始终只会分配一个静态变量。