成员变量随对象创建而分配,存储于堆或方法区,生命周期与对象或程序一致且有默认值;局部变量在栈中执行时创建,仅限代码块内有效,需手动初始化,随方法结束销毁。
Java中类成员变量和局部变量的生命周期有明显区别,主要体现在存储位置、初始化方式以及存在时间上。
成员变量是定义在类中、方法外的变量,属于类或对象的一部分。
• 创建时机:当对象被创建时(通过new关键字),成员变量随之分配内存。如果是静态成员变量,则在类加载时就已分配。局部变量是定义在方法、构造器或代码块内的变量,仅在特定范围内有效。
• 创建时机:当执行流进入其所在的
两者最核心的不同在于作用域和存活时间:
• 成员变量跟着对象或类走,生命周期长,可被多个方法共享。