java二级:布尔型数组默认值

为什么答案是null???不是false????!!!求解释~~谢谢~~

貌似你这样写“boolean b[]=new Boolean[5];”是报错的吧,如果真要解释的话就这样写“Boolean b[]=new Boolean[5];”这样的结果就是null了,因为Boolean是boolean的包装类,不再是基本类型了,所以是null值。追问

明白了,我一开始以为题目是写错了,是后面应该写成boolean。看了你的回答,突然发现也可以理解为是题目前面写错了0 0...书真是坑人,学习还得学找书错误的地方...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-16
实际类型是Boolean这个对象。对象默认初始化是NULL,而boolean不是对象,是声明的,里面包含了自动转型吧。
第2个回答  2013-09-16
boolean b[] = new Boolean[5] 这个只是声明了数组的长度是5,并没有往里头填充任何值,当然是null咯。有不是单个boolean,初始化会帮你自动赋值为false。
第3个回答  2013-09-16
你确定么? 我按这程序 写一编, 不管是静态, 非静态都是false .....

好吧 我才看到, 是new Boolean[5]; 不是new boolean[5];

前者是对象数组, 对象默认值是null,
后者是基本数据类型数组 所以 会赋默认值 false

之所以能 能赋值,是因为JAVA新特性,能自动装箱
第4个回答  2013-09-16
boolean b[]=new Boolean[5];
只是分配了5个数组空间,没有为每个Boolean值分配空间
因为这里做了自动boxing,把b转换为了Boolean数组
相似回答