1、位置上的区别
成员变量:在方法外面,内里面
局部变量:方法里面
例子:
class Student{
String name;//成员变量
public void learn(){
int a;//局部变量
}
}
2、作用上的区别
成员变量:描述某一类事物的公共属性
局部变量:提供一个变量供方法内部使用
class Student{
String name;//成员变量name:描述学生类的公共属性姓名
public void learn(){
int a=5;//局部变量a:供方法内部if判断语句使用
if(a>3){
}
}
}
3、生命周期的区别
成员变量:随着对象的创建而存在,随着对象的消失而消失
对象什么时候创建?
new Student();//创建了学生对象,这时候成员变量name产生了
对象什么时候消失?
对象成为垃圾对象并被垃圾回收器回收掉,对象消失
什么是垃圾对象?
没有引用类型变量指向的对象是垃圾对象
局部变量:变量所在的函数被调用且代码执行到变量声明的语句时存在,出了变量所在的作用域立马消失
4.初始值的区别
成员变量:有默认初始值
数据类型 初始值
int 0
float 0.0
double 0.0
boolean false
String null
引用类型 null
局部变量:没有默认初始值,必须先初始化再使用