变量
- (1)成员变量:
- A:静态变量:有static
- B:实例变量:没有static
- (2)局部变量:
区别:
-
(1)声明的位置不同
- A:成员变量(静态变量和实例变量):声明在类中方法外
- B:局部变量:声明在方法体{}中或声明在方法的()中的形参列表等
-
(2)内存中存储的位置不同
- A:静态变量:方法区
- B:实例变量:堆
- C:局部变量:栈
-
(3)生命周期不同
- A: 静态变量:
-
当类被加载并初始化后,就存在了,等这个类被卸载才会消失。
-
每一个对象是共享的,比对象创建要早,死亡的比对象要晚。
- B:实例变量:
-
每一个对象是独立的。
-
每一个对象的实例变量都是随着new分配空间,当对象成为垃圾后会被GC回收,然后消失。
- C:局部变量:
-
每一次方法调用都是独立的。
-
随着方法被调用然后分配,方法调用完就结束。
-
(4)作用域
- A:静态变量:其他类中用"类名."进行调用
- B:实例变量:其他类中用"对象."进行调用
- C:局部变量:有作用域,出了作用域,用什么都无法调用
-
(5)修饰符(讨论学过的,初期不涉及到的先不提)
- A:静态变量:方法区
-
public,protected,缺省,private都可以
-
static
- B:实例变量:堆
-
public,protected,缺省,private都可以
- C:局部变量:栈
-
没有修饰符