a为数组,那么a==null和a.length==0有什么区别?
a==null是说这个数组不存在,length==0是说这个数组存在,但是里面的元素个数为0
首先数组定义的底层原理和变量定义有相似之处,首先定义一个数组变量,在内存中创建一块地址连续的区域(又叫做创建一个数组对象)用于存储数组元素,再将这块区域的地址赋值给数组变量,数组通过地址去引用数组对象,如果这个地址的长度为0的话就会得到a.length=0,如果赋的值不是个地址值而是null的话就会得到a=null,此时a将无法调用length或者利用索引获取数组元素,否则会抛NullPointerException空指针异常。
详细内容可以参考我的这篇博客,https://blog.csdn.net/qq_59138417/article/details/122509172
a==null是不能调用a.length的,只要调用就毫不犹豫的给你一个Exception
a==null表示为空,a.length==0表示数组长度为0
a如果为空,a.length会触发空指针异常,nullPointException
a等于null表明这个a不存在,而a的长度等于0,表明a存在只不过里面没有值