代码位置:
成员变量存在与类中,是类的成员。
局部变量作为代码块成员、方法成员,存在于方法定义和参数列表上。
内存位置:
成员变量存在于堆中。
局部变量存在与栈中。
初始化:
成员变量作为类的成员,初始化比较早,成员变量默认初始化后,在显示初始化,接下来才是构造对象。
局部变量作为代码块和方法的成员,如果代码块是静态的,局部变量就比成员变量初始化早,
如果是非静态的,就要比成员变量初始化晚。局部变量必须被程序员初始化。
修饰:
成员变量可以被static,public,protect,private修饰。
局部变量不可以被上述修饰符修饰。
成员变量和局部变量都可以定义final。
总结:
局部变量在方法和代码块被执行时创建,结束时销毁。而成员变量存在于这个类的执行期中。
通常情况下,成员变量生命期要长于局部变量。 |