java里,没有初始化变量,为什么会输出0,或者null?而不是随机数?

我写一段代码:

public class EmptyConductor {
int id;
String name;

EmptyConductor()
{

}

public String toString()
{
return(id+" "+name);
}
}

public class EmptyConductorDemo {

public static void main(String[] args)
{
EmptyConductor a=new EmptyConductor();
System.out.println(a);

}
}

为啥输出的是0 null
id 和name 不应该是存在局部数据区里吗?
局部数据区里数据没有被初始化,不应该是随机数吗?

java的基础数据类型,并且是类变量的,系统会自动初始化,包括:
boolean,int,char,long,double,float,short
其他类型对象,不会得到初始化,都为null
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-30
java中变量声明后,简单类型为0或0.0
引用类型为null

不初试,输出当然就是0和null
至于什么是简单类型,
什么是引用类型。应该知道吧?!
第2个回答  2007-11-30
这个是由Java虚拟机内部定义的,没有什么原因。因为他们当初设计时就考虑到用户可能会不初始化,但是那样会很危险的,所以为也安全,就在内部按用户定义的类型来自动进行适当类型的初始化。
第3个回答  2007-12-02
这是很正常的,你没有初始化,数值型的默认值是0;String(或对象)的默认值是null,布尔型的默认值是fault;
第4个回答  2007-11-30
JAVA 里你定义变量时没有初始化会默认赋0值或null的,看是什么类型而定