黑马程序员技术交流社区
标题:
我定义了一个变量,没有初始化,为什么也能使用???
[打印本页]
作者:
大西洋
时间:
2015-5-9 17:11
标题:
我定义了一个变量,没有初始化,为什么也能使用???
本帖最后由 大西洋 于 2015-5-9 17:43 编辑
public class PeachTest {
int a;
public PeachTest(){
System.out.println("\r\r"+a); // 可以调用
}
public void tek(){
System.out.println(a); // 可以调用
}
public static void main(String[] args) {
new PeachTest(); // 由于隐式赋值,打印结果为 0 ,正确
}
}
复制代码
编译没问题;
为何我没有初始化变量 a,也能使用呢?? 此时的 a 占内存吗??
实例化后占堆内存,现在是存放在栈内存吗??
作者:
thoris
时间:
2015-5-9 17:28
成员变量是有默认初始化值的。
作者:
大西洋
时间:
2015-5-9 17:44
thoris 发表于 2015-5-9 17:28
成员变量是有默认初始化值的。
感谢回答!
这个时候,它是占用内存的吧。
作者:
gzp123
时间:
2015-5-9 21:50
成员变量必须要默认初始化值的。
作者:
陈明佳
时间:
2015-5-10 10:06
有默认初始化值,会占内存
作者:
李超然
时间:
2015-5-10 11:35
java语言是会对变量进行默认初始化的,变量a是成员变量,其所在内存区域应该是在静态存储区吧
作者:
ZSMAN
时间:
2015-5-10 11:39
默认初始化啊~
作者:
hufu4635
时间:
2015-5-10 11:40
对象一旦建立,就会自动调用无参的构造方法,虽然你没有对变量a赋值,但他默认的值为0
作者:
魔蝎座
时间:
2015-5-10 11:46
因为这是成员变量,当你new一个对象的时候不赋值的话就直接初始化数值为0
作者:
zy18692243338
时间:
2015-5-10 12:05
用的匿名调用,会初始化成员变量,系统默认0,
作者:
rose_xiaomei
时间:
2015-5-10 20:41
默认为0,肯定占内存,妥妥的
作者:
dengxing
时间:
2015-5-10 20:53
int 类型 默认初始化为0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2