zoukankan      html  css  js  c++  java
  • list=null和list.size=0的区别

    声明转载自:https://blog.csdn.net/iblade/article/details/50506398/

    转载自:https://blog.csdn.net/Hallelujah__/article/details/86688805

    大佬告诉我程序的返回值,list.size =0  what ? 

    List =null 和List.size=0 到底有啥区别? 

    前提说明:

    1、list==null,意味着list压根没有地址,在堆内存压根不存在;

    2、list.size()=0,意味着堆内有list,但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为0;

    3、list如果为null,则说明list还未初始化。此时list调用任何方法都会出现抛出空指针异常。list.size()==0,则说明list已经被new过了,但是里面没有值;

    二者区别:

    1、list != null,有没有瓶子(有瓶子);

    2、list.isEmpty(),瓶子里有没有水(前提是瓶子已经存在,若直接判断水,则会抛出NullPointerException异常);

    3、list.add(null),会造成list.isEmpty() == false,list.size() == 1,因此代码中要注意此处缺陷;

    与现实世界做一个形象比喻:

    我有一个空的水杯(list),而你没有(null);

    我的size是0;

    你想要装水去买个水杯(new ArrayList();),而我可以直接装水(list.add(water));

    若你没有杯子(list),直接倒水(water),水就会流出来(NullPointerException);

    因此判断list时,经常连用list != null && list.size > 0或者list != null && lisy.size != 0。

    附上测试验证代码:

  • 相关阅读:
    算法初步——贪心
    sql去除重复记录 且保留id最小的 没用
    项目二:品优购 第三天
    Restful
    lucene 第一天
    lucene和solr
    zookeeper 面试题 有用
    dubbo 相关面试题 有用
    webservice CXF 相关面试题
    POI技术
  • 原文地址:https://www.cnblogs.com/minmin123/p/12197038.html
Copyright © 2011-2022 走看看