成员变量:
定义位置:在方法外,类体中。
成员变量存储在堆中。
默认值:有默认值,在构造器中可以不对成员变量进行初始化。
生命周期:从对象实例化开始,到对象被GC垃圾回收为止。
局部变量:
定义位置:在方法内(包括小括号里边的形参)
局部变量存储在栈中。
默认值:没有默认值,使用前需要初始化。
生命周期:从声明开始到方法结束弹栈为止。
垃圾回收机制:(GC)
jvm的一个独有线程,用于回收没有任何引用指向的对象。
eg:System.out.println(new Person().name);
上述产生的对象,没有引用变量的指向,只能使用一次,使用一次之后就等待垃圾回收。
因为有垃圾回收机制,所有java程序猿无需担心内存溢出或泄露的情况。