当数组作为参数时或者调用一个方法返回数组时,对这个数组进行操作之前,需要对其进行非空判断,即判断该数组是否为null,然后再对其进行操作
例:
假设返回的数组为String[] ids
if(ids != null){
对数组进行操作
}
另外,数组长度为0和数组为Null是两个概念
例:
String[] ids = new String[0];或者String[] ids = {};
String[] userIds = null;
这两种的区别在于
1.ids是一个长度为0的数组,我们称之为“空数组”,空数组也是一个对象,只是它的长度为0
2.userIds是一个数组类型的“空”,只是一个引用
加入一个方法返回数组或者参数为数组,我们需要先去判断它是否为null,才能对数组进一步处理
否则当数组为null,我们去调用一个null的方法或属性时,会出现空指针异常!
其实不仅仅是数组,我们接收或返回的每一个参数在对它进行操作之前都需要进行非空判断,一般来说,如果我们打算对数据库进行优化,
将列设置为not null default,这时如果我们将一个null值存到数据库中,会出现异常并提示 column 'xxx' cannot be null
看网上有很多人说,数据库设计的时候就尽量把所有列都设置为not null,因为null值是没有实际意义的,这样说也不是没有道理,但主要还是因为索引列不能为null的原因
并且null值与空值(比如空字符串),两者相比,谁占用的空间比较大?首先,这个问题本身就没有意义,比如说,该列为varchar(64)类型,如果为Null,它就不占用任何的
空间,空字符串也一样。如果为char(64)类型,那么无论是Null还是空字符串,都会占用64个字符的空间。所以占用空间的大小并不取决于它是null还是空,而是由数据类型
来决定的!