list==null和list.size()==0的区别
list==null:说明list还没有被初始化,此时没有地址值,在堆内存中找不到它;
如果这时候遍历或使用它,会报出空指针异常NullPointerException
再说list.size()==0,也就是list.isEmpty(),这个时候已经被new过了,在堆内存中可以找的到它,有分配的地址值。
如果是ArrayList,默认长度为10,只是这个时候还没有去给它添加元素。
public class Demo {
public static void main(String[] args) {
List list = null;
System.out.println(list.size());
/*for (Object o : list) {
System.out.println(o);
}*/
}
public void method(){
List list = new ArrayList();
System.out.println(list.size());
}
}
上述代码中,main方法中的list值为null,这个时候无论打印list.size()还是增强for循环,都会报出空指针异常;但是在method方法中输出打印,就会发现控制台结果为0。