1 成员变量 (全局变量): 实例变量, 类变量(静态变量), 常量
public class A{
String id; //实例变量
private String Tel; //实例变量
private static String depart; //类变量
final String s="abc"; //常量
}
2 局部变量 (local variable).
public void method(){
int i =0; //局部变量
}
1 在类中的 位置不同.
成员变量: 在 类中方法外面.
局部变量: 在 方法或者代码块中, 或者 方法的参数列表上.
2 在内存中 的位置不同.
成员变量: 实例变量 在堆区, 类变量和常量在 方法区.
局部变量: 栈中, 每个方法执行的同时都会创建一个 栈帧.
3 生命周期不同.
成员变量:
实例变量 随着对象的创建而存在,随着对象的消失而消失.
类变量属于 类本身,有且只有一份.
常量被 final修饰不可更改.
局部变量: 随着方法的调用或者代码块的执行而存在, 随着方法的调用完毕或者代码块的执行完毕而消失.
4 初始值.
成员变量: 实例变量和类变量 有默认初始值.
常量 没有默认初始值, 必须要赋初值. 比如 final String s = null;
局部变量: 没有默认初始值, 使用之前 (注意是使用之前, 而常量是定义时就要赋初值)必须赋值, 否则编译器会报错 (The local variable xxx may not have been initialized).
5 局部变量, 具有作用域, 生存期, 名称, 存储位置等属性.
(1) 只能在 方法中引用.
(2) 其生存期为 方法的执行期.
(3) 不能 与其所在方法数的形参同名.
(4) 其存储单元在内存的 栈区.
6 类中方法的名称 可以和类名相等.