1.成员变量在类中,局部变量在方法中
2.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型
3.成员变量存储在堆,局部变量存储在栈
4.存在时间不同
6. 在Java中,局部变量必须初始化;成员变量可以不用初始化(被final修饰且没有static的必须显式赋值),系统自动初始化。
public class Test { //成员变量 static int a; public static void main(String[] args) { //局部变量 int b ; //编译通过,结果为0 System.out.println(a); //System.out.println(b); } }
public class Test { //成员变量 static int a; public static void main(String[] args) { //局部变量 int b ; //编译通过,结果为0 //System.out.println(a); //编译时要求局部变量b必须初始化 System.out.println(b); } }