局部变量和成员变量
1、定义的位置不同
局部变量:定义在方法的内部
成员变量:定义在方法的外部,或者直接在类里面定义
2、作用的范围不一样
局部变量;只有在方法中可以使用,在方法外不可以使用
成员变量:整个类都可以使用
3、默认值不一样
局部变量:没有默认值,如要需要使用需要手动赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样
3、内存的位置不一样
局部变量:位于栈内存
成员变量:位于堆内存
4、生命周期不一样
(通常情况下,并不是绝对)
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾而消失
package com.company;
public class Main {
int name;//成员变量
public static void person(){
int age;//局部变量
}
public static void main(String[] args) {
//System.out.println(age);//报错!
}
}