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。

 

附上測試驗證代碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM