import java.util.*;class test{
private int a; public int getA() {
return a;
} public void setA(int a) {
this.a = a;
}
}public class ListTest {
public static void main(String args[]){
List list_one = new ArrayList();
if(list_one.size()==0)
System.out.println("我是list_one,我的长度为0");
if(list_one==null)
System.out.println("我是list_one,我等于null");

List list_two = new ArrayList<test>();
if(list_two.size()==0)
System.out.println("我是list_two,我的长度为0");
if(list_two==null)
System.out.println("我是list_two,我等于null");

}}输出的只是
我是list_one,我的长度为0
我是list_two,我的长度为0
我还没往list里add东西,为什么它不为null呢?

解决方案 »

  1.   

    楼主不清楚null是啥啊
    null是不存在这个对象
    你已经new了一个list,所以这个引用不为NULL
      

  2.   

     List list_one = new ArrayList();意思就是创建一个ArrayList对象,里面有0个对象。
      

  3.   

    List list_one = new ArrayList();
    你这句话已经为list_one创建了实例,jvm已经为list_one分配了空间,只是列表中没有元素List list_one = null;
    这句话只是声明了一个List,并未分配空间,是一个空的引用,此时如果你使用list_one.size()就会报空指针异常
      

  4.   

    你只要New了 系统内存会就会给你分配空间, 就不会指向空地址, 集合中没有元素并不代表集合为null
      

  5.   

    null 是指对象还没在内存里开辟空间
      

  6.   

    new 后就分配空间,list有默认的分配空间,还没有存放时里面是没有对象的
      

  7.   

    new一个肯定不会为空了,否则当你调用add()时就会出现著名的java.lang.NullPointerException
      

  8.   

    当你声明List list_one;的时候 这时候 list_one为null;
    List list_one=new ArrayList();这个时候list_one部位null告诉你最好辨别方法  :
      当妈妈怀上孩子的时候   就相当于声明了 List list_one;
      孩子落地               就相当于      List list_one=new ArrayList();这时才是存在的