在判断非空的时候 常常用到files!=null&files.length()>0 那么很多人好奇长度等于0不就是空吗
言简意赅的说:
数组初始化为总结为两种:
空指针:数组=null 空嘛,是真的空,连地址都没分配
赋空值:数组={}; 就是没内容,但是有分配空间,长度为0,有地址
public class TestArray {
public static void main(String[] args) {
//【null初始化 不分配地址】
//使用语句数组必须要 初始化,用null初始化,JVM不会为数组A分配地址
//数组.toString()会返回地址的哈希值;所以A.toString();不存在!
//A.length不存在 !会报错
String[] A = null;
//【空白初始化 length=0 但是分配地址】
//所以会有数组的一切特征 B.length=0; B.toString()=[Ljava.lang.String;@7150bd4d;
String[] B={};
System.out.println("A没有地址 所以也没有长度地址属性 只能用来判断是否是空:");
System.out.println("*** A==null结果为:"+(A==null));
System.out.println("B没有内容 但是有地址 所以有长度地址属性");
System.out.println("*** B的长度:"+B.length+" B的地址:"+B.toString());
}
}