发布网友 发布时间:2022-03-30 23:44
共7个回答
热心网友 时间:2022-03-31 01:13
貌似你这样写“boolean b[]=new Boolean[5];”是报错的吧,如果真要解释的话就这样写“Boolean b[]=new Boolean[5];”这样的结果就是null了,因为Boolean是boolean的包装类,不再是基本类型了,所以是null值。追问明白了,我一开始以为题目是写错了,是后面应该写成boolean。看了你的回答,突然发现也可以理解为是题目前面写错了0 0...书真是坑人,学习还得学找书错误的地方...
热心网友 时间:2022-03-31 02:31
实际类型是Boolean这个对象。对象默认初始化是NULL,而boolean不是对象,是声明的,里面包含了自动转型吧。
热心网友 时间:2022-03-31 04:06
boolean b[] = new Boolean[5] 这个只是声明了数组的长度是5,并没有往里头填充任何值,当然是null咯。有不是单个boolean,初始化会帮你自动赋值为false。
热心网友 时间:2022-03-31 05:57
你确定么? 我按这程序 写一编, 不管是静态, 非静态都是false .....
好吧 我才看到, 是new Boolean[5]; 不是new boolean[5];
前者是对象数组, 对象默认值是null,
后者是基本数据类型数组 所以 会赋默认值 false
之所以能 能赋值,是因为JAVA新特性,能自动装箱
热心网友 时间:2022-03-31 08:05
boolean b[]=new Boolean[5];
只是分配了5个数组空间,没有为每个Boolean值分配空间
因为这里做了自动boxing,把b转换为了Boolean数组
热心网友 时间:2022-03-31 10:30
有图为证
热心网友 时间:2022-03-31 13:11
话说这个难道能编译成功?你们有人试过么?我很好奇