黑马程序员技术交流社区
标题:
[已解决]关于实例变量和局部变量
[打印本页]
作者:
张少威
时间:
2012-6-3 08:43
标题:
[已解决]关于实例变量和局部变量
本帖最后由 张少威 于 2012-6-4 19:40 编辑
String field;
@Test
public void test01() {
String local;
System.out.println(field); //可以通过编译
System.out.println(local); //无法通过编译
}
复制代码
为什么?
作者:
张亭
时间:
2012-6-3 08:47
field是成员变量,成员变量都有默认的初始值,
local是局部变量,局部变量没有默认初始值,使用之前要先赋值
作者:
胡团乐
时间:
2012-6-3 09:07
成员变量就像写javabean时候一样 会有默认值 String类型是null ; int 基本类型是0;可以通过
局部变量不一样,没有默认值 没赋值的话 编译器会报错;
作者:
杨海波
时间:
2012-6-3 09:35
1.成员变量作用于整个类中,因为对象的存在而存在(在堆内存里) 局部变量作用于函数或语句中,存在于栈内存中,你的fied是实例变量(成员变量)有默认的初始化值,而你的local在函数中是局部变量,是必须自己主动初始化才能使用的,不然会报错。
2.因为储存的地方不同所以他们的存在的时间也不一样,成员变量是跟着对象走的,而局部变量当方法结束后,就会释放在堆内存中的内存空间。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2