记:永远不要停下前进的脚步。
两者的定义
成员变量:定义在类中方法外的变量,称为成员变量。
局部变量:定义在类中方法中的变量,称为局部变量。
伪代码:
int a ; //语法错误!不能在类的外面定义变量!!!
public class 类名{
int age; //成员变量
public void print(){
String name; //局部变量
}
}
两者的区别
- 所在位置不同:详见定义
- 作用域不同:成员变量在整个类中都有效;局部变量只在当前方法内有效
- 内存位置不同:成员变量随着对象的创建而存储在堆内存中,局部变量随着方法被调用而存储在栈内存中
- 默认值不同:成员变量具有初始默认值,,具体的值和成员变量的数据类型相关;局部变量没有初始值,必须手动赋值之后才可以使用
数据类型 | 默认值 |
---|---|
byte、short、int、long | 0 |
float、double | 0.0 |
char | ‘\u0000’,相当于’ ’ |
boolean | false |
引用数据类型 | null |
- 生命周期不同:成员变量: 跟随对象的创建而出生,跟随对象的销毁而销毁 ;局部变量: 跟随方法的调用而出生,跟随方法的结束而销毁