String[]strs=new String[2];
System.out.println(strs[0]);// null
int[]ss=new int[2];
System.out.println(ss[0]);// 0
String[]strs2=null;
if(strs2!=null)
System.out.println(strs2[0]);
// 数组中的元素为空
String[]strs4=new String[]{null};
if(strs4!=null)
System.out.println(strs4[0]);// null
// 数组的长度为0
String[]strs3=new String[0];
if(strs3!=null)
System.out.println(strs3[0]);// java.lang.ArrayIndexOutOfBoundsException: 0
Java中的数组是引用类型,习惯上我会通过数组!=null判断是否有值(但是如果是List类型,则还会加上.size())
偶然遇到过一个数组!=null但是[0]元素==null的情况,费了很多时间才定位到问题。
以后使用数组时需要考虑两个比较冷门的问题:1、数组不为空,但是数组中的元素可能为空
2、数组不为空,但是数组的长度可能为空,导致取[0]元素时下标越界
附:Java中的数据类型