黑马程序员技术交流社区
标题:
成员变量和局部变量的区别?
[打印本页]
作者:
罗伊
时间:
2015-9-22 00:29
标题:
成员变量和局部变量的区别?
成员变量和局部变量的区别?
作者:
僵尸舞
时间:
2015-9-22 00:34
* A:在类中的位置不同
* 成员变量:在类中方法外
* 局部变量:在方法定义中或者方法声明上
* B:在内存中的位置不同
* 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
* 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
* C:生命周期不同
* 成员变量:随着对象的创建而存在,随着对象的消失而消失
* 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
* D:初始化值不同
* 成员变量:有默认初始化值
* 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
作者:
xiaote0225
时间:
2015-9-22 00:41
1).成员变量:
A.定义在"类体"中;可以是任何数据类型;
B.会被自动初始化;
class Student{
String name;
void show(){
System.out.println("我叫:" + num); //打印:我叫:null
}
}
C.当实例化对象后,被存储在"堆"中;
D.当"对象"不被使用(没有任何引用),并被垃圾回收器回收时被清理;
2).局部变量:
A.定义在某个方法、或其它代码块中;
B.必须显示初始化,否则不能访问其值;
class Student{
void show(){
String name;
System.out.println("我叫:" + name); //编译错误。局部变量必须显示初始化才能访问其值;
name = "张三"; //OK。可以被赋值。
}
}
C.当方法或其它代码块被执行时,基本数据类型的"值"和引用数据类型的"引用"都是存储在"栈"中;
D.当方法或代码块执行完毕时,会被立即清理;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2