动态初始化数组的null判断
目前在学习java这方面时,自己动态初始化了一段数组;
有一段知识:
判断数组是否为null
在我自己作业时,我是直接判断数组是否为null;
Student[] arr = new Student[5]; //Student是一个学生类的封装,就不在此描述了。
if (arr == null) {
System.out.println("暂无信息,请添加后重试");
return ;
}
运行过后,发现代码直接判断arr数组不为空值,作为一个小白就有点奇怪了,数组里面明明什么内容都没有赋值,为什么不是null呢。
请看这一段接下来这一段代码:
int flag = false;
for (int i = 0; i < arr.length; i++) {
Student stu = arr[i];
if (stu != null) {
flag = true;
break;
}
}
if (flag) {
return arr;
} else {
return null;
}
这段代码是遍历数组中所有元素进行判断,只要有一个元素不为空值,就返回true;如果全都是空,才会返回null;这样子在打印数组、判断数组是否有内容时有很大的帮助!
至于数组没有元素也不是null的原因,我问了朋友,在new时会在堆内存中创建一个内存地址,已经给数组中给了一个默认初始值,如果还有其他原因,等着我继续往后面学习把,嘿嘿!