成员变量和局部变量的区别:
1.在类中的位置不同:
成员变量在类中,方法外。
局部变量在方法声明上,方法中。
2.在内存中的位置不同:
成员变量属于对象,进堆内存。
局部变量属于方法,进栈内存。
3.生命周期不同:
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着方法的调用而存在,随着方法的调用完毕而消失。
4.初始化值不同:
成员变量有默认的初始化值
引用数据类型初始化值为null;
整数初始化值为0;
小数初始化值为0.0;
布尔初始化值为false;
字符初始化值为‘\u0000’ (u为 unicode编码,2字节,16个二进制位,如输出则是一个 空格,不是空字符,下图为源代码文件)
局部变量没有默认初始化值,必须先定义,再赋值,然后再能使用。
注:局部变量名称可以和成员变量名称一致,调用时采取就近原则。